princeton-vl / infinigen

Infinite Photorealistic Worlds using Procedural Generation
https://infinigen.org
BSD 3-Clause "New" or "Revised" License
5.32k stars 455 forks source link

Retrieve all configurable config/gin parameters. #195

Open Enderfga opened 7 months ago

Enderfga commented 7 months ago

Are all the parameters in the gin files under infinigen_examples/configs/scene_types currently supported by Infinigen, and can the effects shown in Infinigen's official promotional video be achieved by adjusting these parameters? I hope to figure out how many customizable options there are in total.

araistrick commented 6 months ago

Hello,

Unfortunately there is no single easily accessible list of all the customization options present in the current version of infinigen. There is customizable-parameter-count numbers in the original CVPR paper, which does provide a somewhat exhaustive list of the parameters available at that time, but it is now out of date (the codebase is roughly twice as large). We are working on standardizing the random parameter format into something that is uniform across all assets, which would enable them to be easily counted, but at the moment the only way to know for sure is to go into implementations and count them (as we did for CVPR)

The majority of videos in the intro video are directly taken from the result of running manage_jobs with monocular_video on our slurm cluster. the exceptions I can think of are:

Let me know if you have further questions. I wish I could provide a more concrete number, as I think measuring the overall complexity would be useful. Although, it is also worth noting that infinigen also contains millions and millions more random numbers than just these user interpretable ones - besides the user interpretable values like "tree branching frequency" and "bark noise magnitude" there is also millions like "exact angle of every leaf" and "exact displacement of every vertex" or "how did the light bounce during raytracing".

Enderfga commented 6 months ago

Thank you very much for your patient reply; it has been a huge help to me! Additionally, I would like to ask if InfiniGen supports importing content from an existing 3D material library.

araistrick commented 6 months ago

Yes, importing existing materials is not hard at all, you can apply them to infinigen objects the same as you would to any other blender object.

Enderfga commented 6 months ago

I mean to ask if it's possible to call the material library directly within InfiniGen when generating scenes (which might require completing the corresponding asset class code), rather than generating a .blend file and then having modelers add it manually. Can this be achieved?

Enderfga commented 6 months ago

For example, I have a batch of FBX files that contain motion information. I hope to implement character movement in the rendered scene.

Batwho commented 1 month ago

Hello @Enderfga, just wonder are you able to figure this out, or have any progress with this?

@araistrick Since you mentioned there are "millions" of numbers, will you plan to release an official doc for explaining those interpretable options/parameters in a near future?

araistrick commented 1 month ago

The million random numbers are the non-user-interpretable randomness, IE per vertex random displacement or per ray bounce randomness. These are undocumentable and uncontrollable although their seed can be recorded.

I do intend to create documentation and apis for the named controllable parameters but have no specific timeline as it is a large undertaking

Enderfga commented 1 month ago

Hello @Enderfga, just wonder are you able to figure this out, or have any progress with this?

@araistrick Since you mentioned there are "millions" of numbers, will you plan to release an official doc for explaining those interpretable options/parameters in a near future?

you can try 'gin.operative_config_str()'

araistrick commented 1 month ago

This will get you what is exposed to gin, which is a start but far from everything.

In practice the majority of parameters (named random variables) are only accessible via python kwargs or dicts or even editing python.

I intend to unify the interface and expose these but until then there is partial access via gin

Batwho commented 1 month ago

I see, thank you both for sharing the info! A quick follow-up for @araistrick's comment, are those major random variables also user-interpretable or they are not? I believe it would make Infinigen more accessible with the official doc.

@Enderfga Actually, I was wondering about your previous question about implementing character movement in the rendered scene. Do you perhaps have any luck with that?

For example, I have a batch of FBX files that contain motion information. I hope to implement character movement in the rendered scene.