Simulating erosion in Blender part III, a proper addon

In previous articles (Part I and Part II) I documented my first steps in modeling thermal and hydraulic erosion of meshes in Blender, typically ones created with the ANT landscape generator.

Up til now the code was packaged as a stand alone module meant to be run from the command line. The workflow was cumbersome because exporting a mesh, running the simulation and importing the mesh again is slow, error prone and boring so I went on the convert the code to a proper Blender addon that simply works like any operator in Blender.

This first version only implements the thermal diffusion part but the other functionality (landslides and hydraulic erosion) will follow shortly.

Installation

The code is available on GitHub as a .zip file erosion.zip. Download the file, open Blender and go to File->User preferences->Addons->Install from file and select the .zip file. Don't forget to enable the addon after you've installed it.

The addon depends heavily on the Numpy package and you should have installed this in your Blender python libs for it to work. The Numexpr and Psutil packages are optional but if installed should be in your Blender python directory as well, not just in your system's python dir! How to install external packages is out of scope of this this article (I am strongly in favor of including at least Numpy as part of Blender's bundled python packages but I am afraid it will be difficult to convince the developers :-) but for Windows I have documented what I did on the start page of the GitHub repository.

Usage

After installing the addon and enabling it it is available as an Erode entry in the Object menu of the 3D View as shown in the image below.

The options are in the Toolshelf region as usual and the easiest way to work is to apply the 'repeat last' button from the History tab until you are satisfied with the result. Note that it just works for subdivided planes as created for example by ANT (a closed mesh like a Cube will not work) and the mesh should be in Object mode (currently this is not checked!)

No comments:

Post a Comment