Category Archives: Releases


ngPlant turned 10 this year. I am happy to see that this small application is still used by many people. I would like to thank everyone who helps in development of ngPlant and all who used it to create amazing models. Special thanks to James Allen, Yorik van Havre and Marco Rochowski who shared their models so we could create plant database which now contains about 50 beautiful plants.

I think that it would be great to celebrate 10th anniversary of ngPlant with something interesting. So I’d like to announce first public release of WebPlant – simple implementation of ngPlant in JavaScript which works on most desktop browsers (no mobile support yet). It supports loading of .ngp and .nga files, basic model editing, saving to .ngp and .nga, as well as exporting to .obj format. One special feature of WebPlant which is absent in ngPlant is direct access to plants database directly from application (just open “Examples…” listbox and select the plant you want to load). It has several restrictions in comparison with ngPlant application, in particular – no g-mesh branch support, no support for billboard leaves and absent support (for obvious reason) for Lua plugins. Please note, that since this is first release, it is possible that some errors in code were unnoticed, so please let me know about any errors you find (including incompatibilities with ngPlant).

So, if you like to test WebPlant (for instance by browsing plant database), just open WebPlant page, click “Examples…” listbox, choose model you like, wait for several seconds (WebPlant loads model to your browser, so time may vary depending on your internet speed and model size) and enjoy!

Oh, by the way all source code of WebPlant is available on github under BSD license. Similarly to ngPlant, WebPlant contains “core” library which can be used in other projects (such as design or game applications) for plant model generation on the fly.

Merry Christmas and Happy New Year!

ngPlant 0.9.13 Released!

Major new features and improvements:

  • added support for .NGA file format. .NGA file contain all information about model (model parameters and textures). So .NGA files simplify plant models exchange – just export model via File->Export to->ngPlant archive .NGA menu. To import .NGA files use File->Import from->ngPlant archive .NGA menu.
  • now ngplant,ngpshot and ngpview tools search model textures in textures directory (relative to model file) before searching in registered texture paths
  • added support for scaling model during export to OBJ and COLLADA files
  • added Author, Author URL, License, License URL and Plant description URL metadata support to .NGP file format.
  • fixed unresolved symbol(s) error in pywrapper
  • removed build-in “.OBJ” export module, “.OBJ” export plug-in should be used instead now

Download link: ngPlant 0.9.13

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

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 Quit 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.

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

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

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 skipped. 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 broke pywrapper usage (introduced in 0.9.6)
  • ngpbench utility implemented. It is used for ngpcore profiling.
  • ngplant 3d-view update speed improvements.

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.

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.