Page MenuHome

Grow Modeller script. Used for growing models from a set of base objects and instructions.
Closed, ArchivedPublicPATCH

Description

Project: Blender Extensions
Tracker: Py Scripts Upload
Blender: 2.61
Category: Object
Python: 3.2
Script name: Grow Modeller
Author(s): John Michael Palmer
Status: Open

Grow Modeller.

to get it to run paste the script in the blender text editor and run the script

I first had the idea in 2010, see here under the title Procedural builder:
http://wiki.blender.org/index.php/Dev:Ref/Requests/OtherFeatures <The names have changed since then...

I will update this description in the following days:

Models are grown from objects with budnodes.

budnodes and footnodes objects that can be added to other objects with the grow modeller

try

on a cube add a budnode and a grownode.

on the 'budnode grows into' options panel, add the cubes footnode

now on the grow modeller panel, select something like 5 generations and grow the model.....


the code needs cleaning up a bit and commenting i know, i also have to do the wiki page to explain it and give examples....
thanks john :)

Event Timeline

Hi,
Due to changes to the api including the merging of bmesh, several addons are outdated.
Please, if you are the author of an addon check your script with blender revision 44256 or newer.
That is builds made After blender 2.62 official release.
I would ask that updates be made to your addon before the Blender 2.63 release.
6-8 weeks away.
This allows time for the api to become more exposed & bmesh to stablize furthur.
If you need help, drop into irc freenode #blenderpython or #blendercoders & feel welcome to ask questions.
At the time of 2.63 release, scripts that are not repaired or in active developement will have their tracker page marked "Closed"
this will not affect your links to the tracker, similar to closing scripts in 2.49b, the page will be still availible & can be re-opened.

Thanks for your understanding & patience during these Exciting Times.
Brendon.


Attention!!
at the moment there is a problem with the local rotation, will sort it out as soon as possible.

I have also started the wiki page http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Object/Grow_Modeller

Grow Modeller 0.2.0

The rotation has been fixed.
Code still needs tiding up!
Its good to start playing with and modelling.

version 0.2.1

* random rotation put into degrees
* some panels renamed
* error in random rotation applied to object fixed
* scene handler better controlled for re-runs of the script
* new Boolean Union all operator; note that for the moment there is a problem with the boolean modifier.
bug has been submitted [#30462] Union modifier produces incorrect outputs when vertices of object b are on surface of a.

version 0.2.3

separated into modules

can now be installed the usual way. Copy the 'grow modeller' folder to the 2.62/scripts/addons folder in the blender install.

version 0.2.5

now works with parenting instead of constraints

some other problems sorted including, scale rotate order in code and rotating like last object in code.

enjoy!!

Version 0.2.6

The code now has a dictionary to keep track of the footnode objects that are linked to budnode objects. This stops the linked objects being referenced only by there names and to if you change bud/footnode names in blender the code should still work as normal.

A new function has been added to rename bud/footnodes automatically with the prefix of their parent.

... . . .

Version 0.2.61

Here is the version as above with some bugs removed.

Version 0.2.62

As above, the post load handeler reconfigures some properties now!

Version 0.2.7

User interface modified. Some panels merged together.
Objects grow with a roulette type selection.
Random scale can use mean value for x,y and z. A random vector is made then each dimension is set to their mean value.

Version 0.2.8

main grow loop made faster.
some errors fixed in for management of grow dict
new features:
copy grownodes 'in place' to objects in selection.
Add footnodes to growto list from selection.
can randomise partial system seed for new objects.

Version 0.3.0

The first release using the new variable propagation system.

Version 0.3.1

more property update options.

Version 0.3.11

Some Errors have been fixed.
for the Selected Linked footnode option and the addition of footnodes to the grow-to list of new budnodes.....

Version 0.3.12

Some Errors have been fixed.
Dictionary of footnodes has been altered... runs slow when there are lots of objects in the scene, but for now it works.

Version 0.3.2

Footnode dictionary instead of grownode dictionary with identity index for footnodes.
More property update options:
Extensions and attach to surface

Version 0.3.3

Error corrected that distorted the rotation of new objects when previous scaling was not the same for all axis.

New Update Properties for shape keys mean scale and random sees for the partial system.

Version 0.3.4

Triggers have been added:
This is a way to change the weights that are used to select new objects to grow.

extra probability density functions have been included. Now using the random module.

Version 0.3.42

Some errors fixed from 0.3.4, more update properties have been added and some bits of the code have been tidied up.

Version 0.3.5

Bridge update properties added.
Extension with Footnode axis update properties added.
mix and remove shape keys operator added.
Budnode properties panel modified so template_list works properly.

Version 0.3.51 last minute errors fixed.

Version 0.3.52

Trigger error fixed that was reproducing more triggers than was necessary.
index out of range error fixed when deleting the last entry from template_lists.

Filter for selecting Footnode objects added. Object selection can be limited to base objects.
A copy button for the triggers added.

Traceback (most recent call last):
File "/home/nikitron/.config/blender/2.68/scripts/addons/grow_modeller/growmodeller.py", line 846, in nobject_handler
nlastselected = len(sc['lastselected'])
KeyError: 'bpy_struct[key]: key "lastselected" not found'

and

bpy.utils.register_module(): failed to registering class <class 'grow_modeller_0p3p52.gmpanels.ForBudNodePanels'>
Traceback (most recent call last):
File "/usr/share/blender/2.68/scripts/modules/bpy/utils.py", line 591, in register_module
register_class(cls)
AttributeError: expected Panel, ForBudNodePanels class to have an "draw" attribute
Exception in module register(): '/home/nikitron/.config/blender/2.68/scripts/addons/grow_modeller_0p3p52/__init__.py'
Traceback (most recent call last):
File "/usr/share/blender/2.68/scripts/modules/addon_utils.py", line 311, in enable
mod.register()
File "/home/nikitron/.config/blender/2.68/scripts/addons/grow_modeller_0p3p52/__init__.py", line 59, in register
growmodeller.setprops()
File "/home/nikitron/.config/blender/2.68/scripts/addons/grow_modeller_0p3p52/growmodeller.py", line 900, in setprops
bpy.context.scene['lastselected'] = []
AttributeError: '_RestrictContext' object has no attribute 'scene'

Also getting this error. Really think this script looks interesting, so if anyone's figured out a fix I'd love to see it posted. You can duplicate this thing's functions with sverchok, but this would be a lot simpler and quicker...

Brendon Murphy (meta-androcto) changed the task status from Unknown Status to Unknown Status.Sep 2 2015, 8:28 AM

Closing as archived. 3 years old.
John Michael Palmer (jump)
feel free to resubmit in a new task.