APEX for Foliage Generation

   4161   14   8
User Avatar
Member
2 posts
Joined: June 2016
Offline



Hey there! Here is a little background on this project:

I used to work on Project Pegasus, where I worked on foliage tooling with George and Tilman. At that time we thought about using APEX for the foliage tooling, but decided not to look into it. Now that I have some free time, I have immersed myself in the world of APEX and I absolutely love it!

For those who are not familiar with APEX (as I was and probably still am), APEX stands for 'All-Purpose EXecution'. What you can do with it is vaguely similar to PDG in that you can design the operation you want to be done in advance. This is where the delayed evaluation of APEX comes into play, which is currently best documented for APEX rigging. When we talk about an operation here, you can imagine that a polyextrude is an operation as well as using a merge SOP. I have not touched the rigging side yet. I think APEX is capable of much more and can be used in many other areas, for example foliage generation!



Above you can see how these nodes generate an APEX nodegraph



Here you can see how the APEX graph looks like after it goes into the "solver" and the final operations get appended



A bit more context: 1 node adds 1 operation to the APEX graph
Edited by FeikePostmes - Jan. 8, 2024 11:18:22

Attachments:
image_03.png (50.3 KB)
apex_foliage.png (1.5 MB)
image_02.png (213.9 KB)
image_01.png (286.7 KB)

User Avatar
Member
14 posts
Joined: Aug. 2015
Offline
Not sure why anyone dont make any commments,i would love to see a tutorial about other uses of Apex.

Cool work Feike!!!
User Avatar
Member
27 posts
Joined: Nov. 2017
Offline
Hey Jorge, we are hard at work on the system, and will be sharing a tonne of info in the near future
User Avatar
Staff
5 posts
Joined: May 2024
Offline
Exciting stuff, looking forward to seeing this use-case in action
User Avatar
Member
104 posts
Joined: July 2019
Offline
You guys are rock; keep it up! As much as I'd like to test the foliage with delayed evaluation, I'd like to see tutorials and examples of APEX usage in a non-rigging environment.
User Avatar
Member
27 posts
Joined: Nov. 2017
Offline
We should have lots of that as well
User Avatar
Member
21 posts
Joined: Sept. 2021
Offline
same here, want to see more subscribed and waiting
User Avatar
Member
27 posts
Joined: Nov. 2017
Offline
Given the interest, I thought i'd share a glimpse of some apex utilities we have, which may give some insight into how we are working with it. In this video I demonstrate the auto-apex-from-sops node and apex-swap-inplace which are two utilities that allow us to work more quickly with Apex for our use-case.

Attachments:
2024-07-13 12-19-24.mp4 (10.4 MB)

User Avatar
Member
104 posts
Joined: July 2019
Offline
Those utility tools are awesome; they look like they should be part of the standard Apex toolkit.
User Avatar
Member
27 posts
Joined: Nov. 2017
Offline
We're still discovering all the tools/utilities made by sidefx to work with apex. For example, I made the auto-apex-from-sops before discovering that the invokegraph natively can already do the conversion. Buuut, it is useful to have a version which performs the conversion dynamically instead of on demand.

Also I think with apexscript, a lot these utilities would be pretty quick and easy, but since the documentation is still WIP, we're leaning more on vex and sops based approaches in our tools.
User Avatar
Member
27 posts
Joined: Nov. 2017
Offline
We're very much over the hump with Apex. Thanks to the kind folks at Sidefx that steered us in the right direction. We're seeing some very exciting results now and the advantages of working Apex are becoming clearer by the day!

The Speed, control and flexibility are all very impressive and in our case there are some exciting benefits that we'll be sharing as we get closer to showing off more of our work.

In the meantime here's an early preview of our apex "solver" in action. It's still missing important features, but the core framework is nearly there.
Edited by GeorgeHulm - July 29, 2024 06:14:18

Attachments:
8c5fb44cb2c52ae61bd5e6dfb36613d1.mp4 (3.8 MB)
Screenshot 2024-07-29 115535.png (3.9 MB)

User Avatar
Member
2 posts
Joined: June 2016
Offline
We have made a lot of progress! The tools are feeling amazing to play with. Have a look at this tree, no animation was added, this is just a simulation made with the toolset

below an image of the apex graph generating the tree
Edited by FeikePostmes - Oct. 11, 2024 10:19:49

Attachments:
APEXTREE.gif (1.8 MB)
graph.png (340.3 KB)

User Avatar
Member
104 posts
Joined: July 2019
Offline
It looks very natural and realistic! The APEX tree is impressive as well. Is it intended that brunches disappear during growth?
User Avatar
Member
27 posts
Joined: Nov. 2017
Offline
Thanks!

That's the (completely optional) pruning doing what it's supposed to do. Pruning can be done manually or procedurally according to user input or any attribute. In this case, it's just based off of a random chance and a height-based condition.
Edited by GeorgeHulm - Oct. 11, 2024 12:14:50
User Avatar
Member
61 posts
Joined: Oct. 2021
Online
FeikePostmes
We have made a lot of progress! The tools are feeling amazing to play with. Have a look at this tree, no animation was added, this is just a simulation made with the toolset

below an image of the apex graph generating the tree


The graph is art by itself!
www.rehimi.de
  • Quick Links