A well written browser based node graph editor that can create procedural 3d meshes _and_ export as .obj _and_ you've permissively licensed it. This could be the seed for a whole host of procedural tools. Thank you Jim.
I have a lot of ideas for further usecases for this tool, and I am probably going to write my bachelor thesis about it :)
You can tell this is brand new because there are no penises to load in the user submitted models yet.
All of the code is available online, with great documentation. There is, in fact, a server back end for this project:
https://github.com/jim-fx/plantarium/tree/main https://github.com/jim-fx/plantarium/blob/main/ARCHITECTURE....
I will be back in a few days when it is working again.
Only improvement mine has is bezier curves, for both the leaf shape and stem shape. It was (to me) quite a challenge to get both the topology and triangulization right, but a great intro to quaternions and nice refresher on trigonometry. I'd recommend giving a bezier curve node a go.
A rust/Wasm rewrite of the geometry generator is very much on the roadmap. Currently getting my feet wet with rust during advent of code.
A couple of suggestions for usability improvements:
1. Drag handling is buggy when I accidentally move the mouse outside of a box and then release. In that case it doesn't notice a mouse-up and the parameter gets stuck in the mouse-down state. Makes it difficult to draw in the leaf editor or to modify parameters by dragging them like sliders. Probably just need to register the mouse-up event handler on a common ancestor instead of the graph node editor boxes.
2. The little parameter "port" circles for dragging connections are a bit small, especially when zoomed out where you can see a significant portion of the whole scene. Usability would be improved by making them bigger (at least 25%?). It might just be the hit area that needs to be larger, not necessarily the graphical element.
Note: I'm using Firefox. Just tested in chromium and the mouse handler problem happens there as well but dragging to connect nodes seems a bit more usable in chromium.
I tend to get blond to those small usability bugs, so it is very valuable.
Should both be fixed in the coming days :)
Not connected to any scientific projects, just a nerd that likes plants. But projects can have a gbif.org id and then some extra information is loaded through the gbif api :)
Your project is very motivating thank you for making this!
https://en.m.wikipedia.org/wiki/L-system
We use things like this in 3D art and animation. For example the paint system in Maya. This was used to create the forests in Shrek.
Question to OP… have you considered making this available as a Blender plugin?
Regardless, what you have produced is kick ass. L-syetm or not, it demonstrates the complexity of nature.
3D modeling I would define as being fundamentally intentional. Want a particular form? Make it as according to your intention!
Procedural modeling animation/simulation I would define as being 'overseen' by a mathematical algorithm.
In the case of the former, the artist has complete control over every aspect of the outcome.
In the case of the latter, the artist has limited control. Want to change the direction of that simulation-defined particle? Or that branch of that L-system generated tree? Good luck.
The advantage of a procedural approach is that it can realistically emulate the complexity of nature (which is beyond an intentional approach). Hence it's favor in those artists who are interested in nature.
What is presented in OP is a model of the morphology of plants implemented in an L-system. Model has no such fealty to actual physical dynamics. To call them simulations however either grossly misunderstands computational science or the very nature of how plants grow.