This documentation details how to generate fire and water simulations like those shown in the Infinigen launch video. It assumes you have already completed [Installation.md], [HelloWorld.md]. Fluid simulations require significant computational resources.
To generate fluids, you run install.sh with the optional FLIP-Fluids setup step (bash install.sh flip_fluids
), or, please run bash worldgen/tools/install/compile_flip_fluids.sh
to install flip fluids now.
python -m tools.manage_datagen_jobs --specific_seed 3930249d --output_folder outputs/fire --num_scenes 1 --pipeline_config local_256GB.gin monocular_video.gin --cleanup none --config plain.gin fast_terrain_assets.gin use_on_the_fly_fire.gin
Because fluid simulation takes a long time, the fire resolution can be reduced in use_on_the_fly_fire.gin, by setting set_obj_on_fire.resolution = {resolution}
. This will reduce the fire quality but speed up the simulation.
python -m tools.manage_datagen_jobs --specific_seed 1c95bb72 --output_folder outputs/river --num_scenes 1 --pipeline_config local_256GB.gin monocular_video.gin opengl_gt.gin cuda_terrain.gin --pipeline_overrides iterate_scene_tasks.frame_range=[150,200] --config river.gin simulated_river.gin no_assets.gin no_creatures.gin fast_terrain_assets.gin --cleanup none
Similar to fire, the simulation can be sped up by reducing the resolution. In simulated_river.gin, the resolution can be modified by setting make_river.resolution = {resolution}
. The simulation can also be sped up by reducing the simulation duration in simulated_river.gin by setting make_river.simulation_duration = {duration}
. For instance, before running the command above, the duration can be reduced to a number greater than 200 since that is the last frame of the video.
Also, note that this command will produce a scene without assets to speed up the process. However, the liquids generally interact with the objects by splashing on them, and a scene like this can be produced by removing the no_assets.gin
option in the above command.
python -m tools.manage_datagen_jobs --output_folder outputs/onthefly --num_scenes 10 \
--pipeline_config slurm_high_memory.gin monocular_video.gin \
--config fast_terrain_assets.gin use_on_the_fly_fire.gin \
--cleanup none --warmup_sec 12000
python -m tools.manage_datagen_jobs --output_folder /n/fs/pvl-renders/kkayan/river --num_scenes 10 \
--pipeline_config slurm_high_memory.gin monocular_video.gin opengl_gt.gin cuda_terrain.gin \
--pipeline_overrides iterate_scene_tasks.frame_range=[100,244] \
--config simulated_river.gin no_assets.gin no_creatures.gin fast_terrain_assets.gin \
--cleanup none --warmup_sec 12000
High-resolution fluid simulations take a long time, so assets on fire can pre-generated and imported in the scene instead of being baked on-the-fly. This allows for fire to be simulated once, instead of every time a scene is generated. To pre-generate fire assets of all types (bush, tree, creature, cactus, boulder), run:
python tools/submit_asset_cache.py -b $BLENDER -f {fire_asset_folder} -n 1 -s -40 -d 184
where fire_asset_folder
is where you want to save the fire. The number of assets per type, start frame and duration can be adjusted.
If you only want to pre-generate one type of asset once, run:
$BLENDER --background -noaudio --python fluid/run_asset_cache.py -- -f {fire_asset_folder} -a {asset} -s {start_frame} -d {simulation_duration}
where fire_asset_folder
is where you want to save the fire. asset
can be one of CachedBushFactory
, CachedTreeFactory
, CachedCactusFactory
, CachedCreatureFactory
, CachedBoulderFactory
.
After fire is pre-generated with one of the previous commands, edit config/use_cached_fire.gin and set the FireCachingSystem.asset_folder
variable to fire_asset_folder
you used when pre-generating fire. After this use_cached_fire.gin
can be used instead of use_on_the_fly_fire.gin
when generating a scene. This will import the fire from the folder it is saved instead of simulating it on-the-fly.
python -m tools.manage_datagen_jobs --specific_seed 3930249d --output_folder outputs/fire --num_scenes 1 --pipeline_config local_256GB.gin monocular_video.gin --wandb_mode online --cleanup none --config plain.gin fast_terrain_assets.gin use_cached_fire.gin