I Dream of Treemakers

My python skills are lousy, or I would have started writing this already. I forsee blender with it’s own vegetation factory. Yes, lsystem works for some things, but it doesn’t do everything, and it’s very intimidating to learn. It would be great to have a plugin, that could make a broad range of vegetation, make it reasonably low poly, perhaps taking advantage of the new taper curve functions, and some other stuff.
So let’s design a plant maker. Maybe a programmer will take interest. ( a couple of names come to mind but no pressure guys! ) I am going to make some sketches of some ideas I have. What if we had a dream team of programmers, we could have the best plant maker around in no time! yeaahhh! so who is psyched? guys? any programmers? ezual? jms? what are your thoughts, guys? I’m going to go make some drawings now.

I came up with some sort of abstract ideas for various elements of a graphical interface. The part I think is particularly cool, is where I have the spheres representing leaf concentrations.
http://home.att.net/~yorik/treeint1.jpg

Sweet idea Modron! I cant sketch right now (I really need to get to bed) but perhaps tomorrow…

This would be an excellent addition!

Ya it’d be great to have a good way to make vegitation :smiley: Though theres a problem with all the plugins for making stuff automactily being developed, everyone becomes lazy :stuck_out_tongue:

Something I’d like for this class of tool is to do have a tool that does a genetic seek.

Ie generate a random sample of thirty trees/shrubs with different characteristics.

Pick some of the ones that have the closest characteristics - and possibly lock a particular charateristic (ie the genetics won’t vary it).

Then regenerate thirty more based on varying the parameters of the chosen trees.

Pick the ones you like and save their presets.

THis would be really useful for things like your tree tool, but also makehuman and other object generators that allow parameter variation.

LetterRip

Great ideas. The main problems I have with LSystem are (a) knowing which parameters are most important for affecting different aspects of the tree (ie, it’s overall shape, size and proportion), (b) knowing how much change in the parameter value will affect the size of the geometry, and © no real time preview, which would help a lot in tweaking.

Amen.

People become too reliant on scripts and cant do it them selves. Good idea tho.

Amen.

People become too reliant on scripts and cant do it them selves. Good idea tho.[/quote]

Yes and no.

Yes, modeling skills should be encouraged.

No, because restricting such features also restricts professional use. For commercial work, time is money. It is all good and idealistic to think that every model must a unique creation, but such idealism is massively time consuming and prohibitive in commercial work. An individual or company that must individually model plants and scenery cannot compete against another company that uses a time-saving system that also saves the clients money.

Such vegetation systems are widely available for other software, and there is no evidence that it makes 3D modeling, rendering, or animations lower quality – to the contrary, such systems allow for people to concentrate on creating original content, action, and storytelling rather than recreating scenery.

There is room for artistry & idealism to coexist with practical solutions for commercial and professional work… they do already with other software applications. Commercial work cannot always adhere to such lofty idealistic goals, and by limiting commercial 3D artists by not offering tools like this proposed vegetation system, we are basically forcing them to use other 3D software.

exactly. I didnt mean they shouldnt be used (scripts). People just shouldnt become reliant on them

I’m not suggesting relying on presets, but you could start with a preset, and then maybe move on to full interface mode for additional tweaking. also, if you had some other means of controlling the outcome, like being able to set up the main portion of the trunk, or define where the main canopy volume was to be, you would be relying less on randomosity, and more on your own aesthetic judgement. It would certainly be handy though, for most things to be able to go into fir tree mode, or palm tree mode, and just adjust a few things, and achieve the desired outcome.

Man, with all these “modelers” and “animation tools” we sure are getting lazy. Things would be so much better if we just punched in the vertex coordinates by hand and did all the interpolation in our heads.

Kidding, but I couldn’t resist :smiley:

If the tree script is a good tool, then it should provide lots of well thought-out general options that the user must learn to manage and combine effectively (like Blender itself).

have you ever used the tree script? if you do, do a little test. once you have learned how to use it, make a specific type of tree. take a render of it. now put the tree plugin down for a week, come back to it, and see how successful you are in reproducing that type of tree, and if you even remember how to use it at all. ( assuming you were able to grasp it initially )
<edit> btw I am speaking from the perspective of someone who does know how to use lsystem, and uses it often. I am guessing though, that there aren’t a whole lot of people here who are comfortable with it.
<edit> also if you’re such a purist, what are you doing using computers. should’nt you be using clay or charcoal? :stuck_out_tongue:
<edit> one more thing,…when you get lsystem up and running, make a fir tree, and make a willow tree. hmmm not so easy!

Hehehe…

I’m quite sure I’m not getting lazy by using scripts. They are pretty hard to get good results, and anyway I always have to retouch their output to fit my needs.

Anyway, what I would like to change in LSystem is the orientation of leaves. Real trees have their leaves affected by gravity, so most of them are bended towards the ground. Leaves created thru scripts, are always too “hard” and pointing in random directions which make them look too artificial.

Modifying leaves orientation by hand is a really tough job (not being lazy here, just sensible).

Cheers.

lazy malefico.

there is a combing feature for hair that would work just as well for leaves.

I think I posted a link to it in the Fiber discussion that lists some code.

LetterRip

yeah I was thinking the same thing. maybe ripsting will become interested in this if it ever starts fleshing out.

me [!]

i like the idea though i think of creating bushes and things like this coz i don’t like trees, they often have thousands of verts and that’s not good for my computer
if you want high-detail leaves you’d have to find some good textures to use for uv mapping and you’d have to include them with the script(s). this would be better for my computer :wink:

pat

ps: try the POVtree import on my site, POVtree creates cool results and lots of verts

I’ve been dreaming of tree generators for several years now. I’m picking up python in my spare time and I’ve actually started a blender polygonal tree generator. I’m basing the algorithms on a research paper by Jason Weber (Teletronics International) and Joseph Penn (Army Research). I think the paper may have been presented at Siggraph '95. I bought it and don’t have the rights to publish it online (I hate non-free information). Anyway…it’s got a great list of variables and math for powerful, fast algorithms. As I said I was initially working on a polygon-based version, but when the new taper curve feature came out it made me realize how limiting polygons can be for initial creation. As it turns out the curve taper feature (currently) is too limited to do what I’m after in a slick way. Nurbs, however, create an almost identical avenue for natural looking trunk/branches (and of course they can easily be converted to poly with variable detail levels). Nurbs also display faster within Blender itself than the same detail of polygons. Nurbs tubes could be extruded along bezier curves (similar to curve taper, but with more control);basically dupliverts with python. Blender API is so close to allowing everything I need to program this solution. If we push for certain features, I expect that they will be in place by the time I arrive at the need for them. For my current plants I know I will at least need the ability to skin nurbs splines from python (unless it exists and I just missed it) as well as the ability to create hooks with python (for realtime draggable controls for certain tree attributes) Eventually the ability to convert nurbs to polygons with python and the new boolean support in python (once it’s implemented). Once the generator is being refined, something else that would be awesome would be LOD optimization for rendering as well as realtime and the workspace. Then perhaps moving into more options than just trees & bushes, such as flowers, fruits, vines, etc. Maybe the ability to keyframe a plant’s growth and to force it to grow into a particular shape. Eventually allowing a full distribution engine (work with Beast?).

These are all advanced options for the far future of course, let’s start with tree-specific options and then move in that direction. I loved you guys’ ideas so far, keep them coming and I’ll keep you updated on progress. This change in approach (polygon to nurbs) means I have to rework somethings, but eventually I’ll make a website to display progress so far, and I’ll also register it as a project on blender.org. I didn’t want to dive in prematurely, but since this post is here, I figured I’d mention what I’ve been up to. I’d love your help: the best things to do right now is keep brainstorming, and doing research (I’ve included a few links at the bottom). This has to be built smart from the ground up with a usable interface, and fast, realtime editing. If you’re a coder, maybe you could help expand the api with some of the features above, that’d be huge! Soon I can split the actual python coding into tasks that others can help me with. Let me know what you guys think of this direction and my comments…sorry for the long post. :smiley:

http://www.vterrain.org/Plants/Papers/
http://members.chello.nl/~l.vandenheuvel2/TReal/
http://bakhter.com/html/3d/tree_creator.html
http://www.oyonale.com/ressources/english/sources01.htm
http://www.cirad.fr/en/pg_recherche/page.php?id=61
http://www.aust-manufaktur.de/austv2x.html
http://www.xfrog.com/

A reprint of that article appears to be available online

Creation and Rendering of Realistic Trees

I’ve done an exensive survey of what is available out there in regards to software. I’ve also found sites that are useful for photoreferences.

Give me a few days and I’ll post what I’ve found.

Tom M.
LetterRip

Hey thanks for finding the article…that’s great. I also like your idea of a “genetic seek” for quick and easy refining of plant types! Genius idea. Can’t wait to see more reference material!

To start with, read this presentation gives a good overview of how tree and plant generation has progress
http://www.td-grafik.de/artic/talk20030122/index.html - start HERE

Here are some more ideas I’ve had

generate low level of detail via rendering different layers of leaves to different transparent billboards

branch and limb positioning via control mesh

pruning of limbs - I think I’ve seen this elsewhere, but don’t recall in what.

  1. and leave a stump
  2. or no stump as if no limb had every grown
  3. broken or ‘jagged’ spot
  4. or a broken limb with a piece on the ground

Here are most of the links, I can’t seem to find all of them at the moment - specifically there was a really useful commercial tool for generating wood grain based on growth parameters and then direction of cut. Another interesting commercial tool (focused more on bamboo and palm trees), and more research on generation of bark surfaces. I’ll see if I can find them later,
Commercial tools
xfrog - http://www.xfrogdownloads.com/greenwebNew/index.htm
speedtree - http://www.idvinc.com/tree_browser/browser.htm
NatFX - http://www.bionatics.com/home/index.php3?QuelleLangue=en

bark synthesis - http://www-imagis.imag.fr/Membres/Sylvain.Lefebvre/these/bark/

plant modeling research
http://www.td-grafik.de/artic/talk20030122/index.html - start HERE
http://www.uni-forst.gwdg.de/~wkurth/memb_ga.html
http://coco.ccu.uniovi.es/malva/sketchbook/contents/contents.htm
http://marief.soler.free.fr/Monsite/lsystem.htm
http://www.itee.uq.edu.au/~comp3202/Lectures.html

Images of trees and plants
plant image library - http://www.csdl.tamu.edu/FLORA/gallery.htm
plant photos - http://elib.cs.berkeley.edu/photos/flora/
virtual herbarium - http://www.virtualherbarium.org/
http://www2.ucsc.edu/arboretum/gallery/
http://www.usna.usda.gov/PhotoGallery/AzaleaGallery/index.html
http://www.ext.nodak.edu/extpubs/plantsci/trees/f436-1.htm#The
http://www.csdl.tamu.edu/FLORA/imaxxfab.htm
http://www.noble.org/imagegallery/
http://selectree.calpoly.edu/attribute_search.lasso
http://hort.ifas.ufl.edu/trees/
http://www.biologie.uni-ulm.de/systax/dendrologie/plantlist.htm
http://www.growit.com/PlantInfo/QuickPick.htm

Software that is free and open source
make tree - http://www.oyonale.com/ressources/english/sources01.htm
plantstudio - http://www.kurtz-fernhout.com/PlantStudio/links.htm
(note that they still haven’t released the source, but they claim that it has been gpled)
http://www.math.smith.edu/~phyllo/CourseMaterial/Teachingmodules/phyltut2.html
http://jmsoler.free.fr/util/blenderfile/images/lsystem/neo_lstseed228.zip
http://arbaro.sourceforge.net/

Free but does not appear to be open source
http://propro.iis.nsk.su/go/Wshop/povtree/povtree.html

Overviews of available software
http://www.vterrain.org/Plants/plantsw.html
http://membres.lycos.fr/treegenerator/comparefr.htm

commercial plant model librarys
plants images library (commercial models)- http://3dplants.0catch.com/index.html
more plant commercial models - http://www.gardenhose.com/
xfrog plants - http://www.xfrogdownloads.com/greenwebNew/products/plantlibStart.htm
http://www.imagecels.com/Plants/flowering_thumbs.html
http://www.idvinc.com/tree_browser/browser.htm

Tom M.
LetterRip