SourceForge.net Logo Follow ngplant on Twitter
Overview

ngPlant is a plant modeling software suite. Designers can use interactive tool to create 3D models of different plants and trees. Software developers can use 3D API-independent library to use generated plant models in their 3D applications, or to create plant modeling plugins for different 3D modeling tools.

Screenshots
Models shown in these screenshots were downloaded from The Blender Greenhouse
News
19.08.2014 ngPlant 0.9.12 Released!

Major new features and improvements:

  • now it is possible to have multiple first-level branches distributed across circle or square area
  • added current branch group highlighting by holding Alt key pressed
  • Open Recent action support added
  • .OBJ export plugin improvements (Vianney Tran):
    • added workaround for Maya .obj importer bug
    • added group statements generation
    • implemented export to directory (similar to COLLADA export plugin)
  • fixed problem with incorrect hide/show command handling in presence of dummy branches

Download link: ngPlant 0.9.12.

24.11.2013 ngPlant 0.9.11 Released!

Major new features and improvements:

  • added Start RevAngle parameter to branching algorithm
  • added Origin offset X and Origin offset Y parameters to Quad stem model
  • added Apply scaling parameter to Wings stem model
  • added support for dummy branches
  • added export/import support to spline edit dialog
  • added Min. Offset <= Max. Offset constraint in Branching parameters panel (Cory Cohen)
  • added confirmation dialog to New, Open and Quid commands (Cory Cohen)
  • added optional command line argument to ngplant - .ngp file name to be opened (Cory Cohen)
  • improved automatic branch group name generation
  • added generation of default .obj/.mtl/.dae file name(s) to OBJ and COLLADA export plugins
  • fixed 3d-view refresh problem on Ubuntu (Cory Cohen)
  • MacOS X 10.7 support restored
  • P3DStemModelQuad::FillCloneVAttrBuffer(I) fix (always use scale factor 1.0 for clone data)
  • fixed (possible) crash on MacOS X 10.8 during texture loading
  • fixed handling of textures and branch group names with spaces in .ngp file format

Download link: ngPlant 0.9.11.

14.04.2013 ngPlant 0.9.10 Released!

Major new features and improvements:

  • added COLLADA export plugin
  • NumPad emulation implemented. If enabled it allows to use "Ctrl"+<digit> on PC or "Command"+<digit> on Mac instead of NumPad keys
  • '+' and '-' keys now zoom in/out 3d view
  • 'Alt' key can be used instead of middle mouse button to move and rotate 3d-view
  • HLI API extended to provide information on "cloneable" branch groups (C++,Python,Lua)
  • texture names with spaces are properly handled now

06.12.2012 ngPlant 0.9.9 Released!

Major new features and improvements:

  • "disable randomness" feature allows to disable (temporarily) model variations
  • now it is possible to set minimum and maximum number of branches in branching algorithm parameters
  • default cross-section resolution for tube stem model can be set in preferences dialog for each branch level
  • tangent-space calculation can be disabled during .obj file import
  • official binaries for Mac OS X

18.07.2010 ngPlant 0.9.8 Released!

Major new features and improvements:

  • Undo/Redo functionality implemented.
  • PNG and JPEG images support added.
  • ngplant icon created by Yorik van Havre added
  • ".obj" export plug-in now can join similar materials during export

01.04.2010 Early 0.9.8 beta is available via Mercurial repository

Today latest sources of ngplant with all functionality planned for 0.9.8 have been pushed to Mercurial repository. Key features of upcoming release are .png and .jpg formats support, undo/redo functionality, other fixes and improvements.

You can get ngplant sources using this command (provided that you have Mercurial client installed):

hg clone http://ngplant.hg.sourceforge.net:8000/hgroot/ngplant/ngplant

30.10.2009 Mac OS X binaries available

Last month several links to (unofficial) ngplant Mac OS X binaries had been posted to OSX thread. Thanks to Jan Barnholt, Abel Groenewolt and Reto Spoerri for patches and binaries. Links to binaries can be found on forum thread or in download section.

08.04.2008 ngPlant 0.9.7 Released!

Major new features and improvements:

  • fixed a bug in fragment shaders code. Absence of "uniform" qualifier in sampler declarations caused shaders compilation errors in some configurations. Thanks to Milos Zajic for bug report.
  • "turntable" camera mode implemented. Mode can be set in "Preferences" dialog ("Control" tab).
  • mouse sensitivity can be changed via "Preferences" dialog.
  • curve in curve editor now can be reset to default state. Click on right mouse button on empty space inside curve editor and use "Reset to default" menu item.
  • curve editor size is now customizable via "Preferences" dialog.
  • You can switch between perspective and orthographic mode in 3d-view using 'NUMPAD-5'.
  • sensitivity of several numeric controls changed to more appropriate values ("Length" parameter of "Tube" stem model and "Density" parameter of branching algorithm).
  • g-mesh import plugin improvement - now "g" lines in ".obj" files are silently skiped. In previous version "g" lines presence caused .obj file import to fail. Thanks to Edwin van het Bolscher for help with this problem.
  • now ".obj export" (built-in - not plug-in) produces more optimal files in sense of size and material switch count.
  • fixed a bug which brokes pywrapper usage (introduced in 0.9.6)
  • ngpbench utility implemented. It is used for ngpcore profiling.
  • ngplant 3d-view update speed improvements.

03.03.2008 Compiling ngPlant on Ubuntu Linux HOWTO

Ari Häyrinen posted tutorial on compiling ngPlant on Ubuntu Linux.

28.02.2008 Excellent plant making tutorial

Yorik van Havre wrote excellent plant making tutorial. This tutorial covers all steps of plant modeling: some theory, modeling plant in ngPlant, creating leaf and branch textures with Inkscape and GIMP and using created models in Blender. I strongly suggest everyone interested in plant modeling to read this tutorial.

08.01.2008 ngPlant 0.9.6 Released!

Major new features and improvements:

  • New stem model - GMesh added. This model allows to use arbitrary meshes as stems or leaves. A most generic way to import mesh is to use ".OBJ import" plug-in available under "Stem model->G-Mesh->Import .OBJ" item of plant structure popup menu. Two other possibilities are: "Stem model->G-Mesh->Triangle" (triangle stems) and "Stem model->G-Mesh->Rhomb" (rhomb stems). Set of available meshes can be extended without C++ coding - new type of plug-ins written in Lua is used to create stem geometry. "plugins/gmesh_rhomb.lua" and "plugins/gmesh_triangle.lua" can be used as a base for creating other gmesh plugins.
  • ngplant scan plug-ins directory (it can be set in preferences dialog) for export and g-mesh plug-ins. Export plug-ins now are available directly under "File->Export to..." menu.

20.12.2007 ngPlant 0.9.5 Released!

Major new features and improvements:

  • ngpcore, ngput and pywrapper libraries now distributed under the terms of BSD License.
  • Now it is possible to add up to 8 branch sub-groups per branch (in previous versions up to 4 sub-groups could be added).
  • GLSL support added to ngplant. With GLSL support it is possible to see per-pixel diffuse lighting applied to plant models in real-time (normal-map support). Source code for shaders used by ngplant is located in "shaders/ngplant_default_vs.glsl" and "shaders/ngplant_default_fs.glsl" files.
  • Now it is more easy to build and use ngplant libraries under Windows. Thanks to Matthias Meyer for initial patches.

More detailed list of changes can be found in ngPlant package ReleaseNotes file.

07.10.2007 ngPlant 0.9.4 Released!

Major new features and improvements:

  • partial texture layers support (ngplant,ngpshot and ngpview use diffuse texture layer only)
  • branch group copy operation implemented in ngplant
  • meaningful names can be assigned to branch groups
  • plant model auto-update now can be disabled

More detailed list of changes can be found in ngPlant package ReleaseNotes file.

23.07.2007 "The Blender Greenhouse" project

Yorik van Havre started The Blender Greenhouse project. Project page contains several nice textured plant models made with ngPlant. All models are available for download as .blend (Blender file format) files. Each model contains short description of modeled plant, a link to Wikipedia plant description and a link to ready-to-use alpha textures.

I would like to thank Yorik for his nice work.

26.06.2007 ngPlant 0.9.3a Released!

ngPlant 0.9.3a is a bug fix release. This release fixes a (serious) bug which caused broken parameter panels appearance and made model editing almost impossible in ngplant application.

Thanks to Abe Madey and "jpbouza" (member of blenderartists.org forum) for bug report.

19.06.2007 ngPlant 0.9.3 Released!

New features and improvements:

  • Modeling changes:
    • "Phototropism mode" parameter removed from "Tube" stem model. Now it is possible to apply both modes to the same branch group using "Phototropism distribution" curve.
    • "Cylindrical" billboards support added.
    • LOD visibility range support implemented. It allows to control branch visibility depending on selected LOD level.
    • Transparency control implemented. It allows to make branches smoothly fade-in and fade-out during LOD changes.
  • ngplant application changes:
    • configuration file 'texdirs' is not used anymore, all ngplant settings are stored in '.ngplant' configuration file.
    • "Preferences" dialog ("File->Preferences...") can be used to set paths to textures, export and 3d-view user preferences. Note that changes to texture paths does not apply immediately, you should restart ngplant to apply changes.
  • Export functionality changes:
    • selective export support added - it is possible to exclude from export hidden branch groups and branch groups which are outside LOD visibility range.
    • Now it is possible to write export plug-ins for ngplant using Lua programming language. To run export plug-in use "File->Export to->Run export script..." and select script to run from "plugins" directory.
    • exp3dobj.lua plug-in implemented (it can be used as a reference for implementing other export plug-ins).
  • 3D-view improvements:
    • ground plane can be hidden now ("File->Preferences...->Misc->Ground visible")
    • ground plane color can be changed using "Preferences" dialog
    • 'NUMPAP-3','Shift-NUMPAD-3','NUMPAD-7','Shift-NUMPAD-7' and 'Shift-NUMPAD-1' keys can be used to set camera to right/left, top/bottom and back view.
    • 'NUMPAP-4','NUMPAD-6','NUMPAD-2','NUMPAD-8' keys can be used to rotate camera by discrete steps.
  • Parameter panels improvements:
    • Now it is possible to enter numeric values directly from keyboard - double-click on Numeric control and enter number in opened dialog window.
    • Now it is possibe to edit curves more precisely - double-click on empty space in curve control and edit curve in resizable dialog.
    • base texture can be removed from material (previously it was possible only to change texture by another one)
  • Changes in other applications:
    • ngpview application now supports billboard branches (previous version rendered such branches as oriented rectangles)
  • C++ API (HLI) changes:
    • GetBillboardSize method added to P3DHLIPlantTemplate class
    • new constructor added to P3DHLIPlantTemplate class to allow create plant template using existing P3DPlantModel object.
    • GetBillboardMode method added to P3DMaterialDef class
    • IsLODVisRangeEnabled and GetLODVisRange methods added to P3DHLIPlantTemplate class
    • IsAlphaCtrlEnabled,GetAlphaFadeIn and GetAlphaFadeOut methods added to P3DMaterialDef class
  • Python API (HLI) changes:
    • GetBillboardSize method added to BranchGroup class
    • BillboardMode attribute added to MaterialDef class
    • IsLODVisRangeEnabled and GetLODVisRange methods added to BranchGroup class
    • AlphaCtrlEnabled and AlphaFadeRange attributes added to MaterialDef class

Thanks to all who participates in ngPlant discussion at project forum at sf.net and other sites and send me bug reports and feature requests. It helps a lot!

27.04.2007 "ngPlant Experiments" web page

Abe Madey created web page containing results of his experiments with ngPlant and PovRay. This page contains several pictures of beatiful plants he modeled using ngPlant and rendered with PovRay. Abe kindly provided ".ngp" files for four plant models. Before using these files please read terms of usage on the top of web page.

12.04.2007 ngPlant 0.9.2a Released!

ngPlant 0.9.2a is a bug fix release. This release fixes a bug which caused incorrect material assignments in "*.obj" files exported from ngplant application (Thanks to Ryan Ammoury for bug report).

24.03.2007 ngPlant 0.9.2 Released!

Major new features and improvements:

  • Wings stem model implementation. This stem model is useful for modeling palm leaves, ferns and similar ones.
  • Quad stem model improvements. Now Quad stem can be bent along its Y axis and scaled depending on its location on parent branch.
  • "simplefern" plant model - example of Wings stem model usage.
  • High-level interface for C++. This programming interface allows to use ngPlant models in real-time 3D applications. Documentation for HLI can be found here. ngpshow application (very simple plant viewer) is an example of using HLI in real-time 3D application.
  • Python bindings for ngPlant HLI. Now it is possible to create plant models exporters and viewers using Python programming language. Python extension module documentation can be found here. ngp2obj.py script (.ngp to .obj exporter) shows how to create .ngp exporters using Python.

More detailed list of changes can be found in ReleaseNotes file.

25.01.2007 ngPlant 0.9.1 Released!

This version include: new ngpshot utility, compressed TGA files support, ngplant GUI improvements and several bugfixes. More detailed list of changes can be found in ReleaseNotes file. Thanks to everyone who send me patches and bug descriptions!

Documentation
Downloads

ngPlant source code (platform-independent), binary installer for Windows and Mac OS X image are available from here.

License

ngPlant is a Free Software project. ngPlant modeling tool and ngpshot utility are distributed under the terms of the GNU General Public License (GPL). Software libraries (libngpcore, libngput and pywrapper) which may be used in another projects are distributed under the terms of the BSD License.

The Blender Greenhouse "The Blender Greenhouse" is a project created by Yorik van Havre. On project web-page you will find several nice plant models made with ngPlant. All models are available for download as .blend (Blender file format) files. Each model contains short description of modeled plant, a link to Wikipedia plant description and a link to ready-to-use alpha textures.
Plant making tutorial Excellent plant making tutorial written by Yorik van Havre. This tutorial cover all steps of plant modeling: some theory, modeling plant in ngPlant, creating leaf and branch textures with Inkscape and GIMP and using created models in Blender. I strongly suggest everyone interested in plant modeling to read this tutorial.
Creating trees with NGPlant 0.9.9 - Introduction Introduction to video tutorial made by Jim Allen.
Creating trees with NGPlant 0.9.9 - Part 1, Branches First part of video tutorial made by Jim Allen. This part deals with branches.
Creating trees with NGPlant 0.9.9 - Part 2, Leaves and Texturing Second part of video tutorial made by Jim Allen. This part deals with leaves and texturing.
Tutoriel : Faire un arbre avec ngPlant Nice ngPlant tutorial (in French).
http://povrayscrapbook.awardspace.com Page created by Abe Madey contains several pictures of beatiful plants modeled using ngPlant and rendered with PovRay. Abe kindly provided ".ngp" files for created plant models. Before using these files please read terms of usage on the top of web page.
Compiling ngPlant on Ubuntu Linux Ari Häyrinen describes process of compiling ngPlant on Ubuntu Linux.
Contacts

If you have found a bug or have some questions or suggestions, you can e-mail me to stager(at)users.sourceforge.net.

Also, you can discuss ngPlant project at Forum.