Rendering out all possible product configurations

   2318   8   2
User Avatar
Member
36 posts
Joined: March 2014
Offline
How would I go about to set up a system that renders out all possible variations of a product configurator?

I'm working on a project where I have to render out all possible combinations of a bike configurator, colors, gears and more fx. saddle. Let's say that the bike has three different color choices, three different gears and two saddles, how do I set up houdini to render out all of the combinations of these automatically? PDG?
Edited by stinzen - Dec. 6, 2021 11:38:42
User Avatar
Member
678 posts
Joined: Feb. 2017
Offline
yes, or simply use switch nodes and key them.

Cheers
CYTE
User Avatar
Member
36 posts
Joined: March 2014
Offline
CYTE
yes, or simply use switch nodes and key them.

Cheers
CYTE

Do you know which nodes I would use to set it up in PDG? There will probably be more variations in the future so would be cool with less manual work.
User Avatar
Member
678 posts
Joined: Feb. 2017
Offline
this is a good PDG starting tutorial.

Entagma tut [vimeo.com]

Cheers
CYTE
User Avatar
Member
36 posts
Joined: March 2014
Offline
CYTE
this is a good PDG starting tutorial.

Entagma tut [vimeo.com]

Cheers
CYTE

Thanks Will dig more into it.
User Avatar
Member
603 posts
Joined: July 2013
Online
Yes, PDG. You have PDG pull in each "option" as work-items, grouping them appropriately, then run that thru a for-each loop, and iterate thru the parent-child options and within each iteration of the loop, write the geo to disk or render to disk or both.
Houdini Indie
Karma/Redshift 3D
User Avatar
Member
36 posts
Joined: March 2014
Offline
Daryl Dunlap
Yes, PDG. You have PDG pull in each "option" as work-items, grouping them appropriately, then run that thru a for-each loop, and iterate thru the parent-child options and within each iteration of the loop, write the geo to disk or render to disk or both.

How do I pull them in as work items, by wedging? Trying to wrap my head around PDG.
User Avatar
Member
12 posts
Joined: Dec. 2019
Online
Hi Stinzen! I'm just going through the same exercise, rendering 90+ product variants (multiple colors, lights, cameras). PDG is PERFECT for this. While it took a while to figure it out, once it works it's great!

The one thing that really took me a while to figure out was how PDGs work in the scene. When you drop in a PDG node, in there you set up various wedge parameters. These are actually just variables, which then can be "pushed" into your scene. For example when you define a wedge attribute "color" with string values "black","white","blue", you can use it outside of your PDG network in any parameter you want, be it in switch nodes, material assignments, choosing a variants or whatever. Simple use the wedge parameter anywhere you need it, for the example above with `@color` (don't forget the backticks in parameters). When you cook your PDG, all wedges are propagated up into the entire scene, and all variants are automatically generated.

I'm using Solaris to actually do this. I build the product as an USD components, which helps a lot with managing the variants. So basically you want to use the Components Builder [www.sidefx.com]. You then set up your product variations in there, and they will be automatically made available in the components. For varying geo you use geometry variants [www.sidefx.com]. For different materials you simply wire multiple Component Material nodes and name them according to you variants. It's all described well on the above linked component builder docs. This allows you to use Explore Variants [www.sidefx.com] and simply use your wedge in the variant filter of that node, e.g. Variant Filter: `@color for the example above. This will automatically generate all color variants of the product in the PDG.

Finally, you simply use a Fetch ROP node at the end of your PDG network, to actually trigger a render for each variant. Works like a charm!

Cheers, Stefan
User Avatar
Member
36 posts
Joined: March 2014
Offline
Aietes
Hi Stinzen! I'm just going through the same exercise, rendering 90+ product variants (multiple colors, lights, cameras). PDG is PERFECT for this. While it took a while to figure it out, once it works it's great!

The one thing that really took me a while to figure out was how PDGs work in the scene. When you drop in a PDG node, in there you set up various wedge parameters. These are actually just variables, which then can be "pushed" into your scene. For example when you define a wedge attribute "color" with string values "black","white","blue", you can use it outside of your PDG network in any parameter you want, be it in switch nodes, material assignments, choosing a variants or whatever. Simple use the wedge parameter anywhere you need it, for the example above with `@color` (don't forget the backticks in parameters). When you cook your PDG, all wedges are propagated up into the entire scene, and all variants are automatically generated.

I'm using Solaris to actually do this. I build the product as an USD components, which helps a lot with managing the variants. So basically you want to use the Components Builder [www.sidefx.com]. You then set up your product variations in there, and they will be automatically made available in the components. For varying geo you use geometry variants [www.sidefx.com]. For different materials you simply wire multiple Component Material nodes and name them according to you variants. It's all described well on the above linked component builder docs. This allows you to use Explore Variants [www.sidefx.com] and simply use your wedge in the variant filter of that node, e.g. Variant Filter: `@color for the example above. This will automatically generate all color variants of the product in the PDG.

Finally, you simply use a Fetch ROP node at the end of your PDG network, to actually trigger a render for each variant. Works like a charm!

Cheers, Stefan

Hi Stefan,

Wow, thank you for your detailed answer, this is incredible helpful!!

So then I can also setup attributes for mesh variations and hook it up to switch nodes wherever in the network they need to be changed? And then also get all the variations of @color 0, 1, 2 * @frame 0, 1, 2? That is amazing, you just saved me days of research! Now I just need to dig into Solaris, USD and component builder...
  • Quick Links