├── .clang-format ├── .editorconfig ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── ask-for-help.md │ ├── bug-report.md │ ├── other.md │ └── suggestion.md ├── backup_CODEOWNERS └── workflows │ ├── checks.yml │ └── release.yml ├── .gitignore ├── .gitmodules ├── .pre-commit-config.yaml ├── Dockerfile ├── LICENSE ├── MANIFEST.in ├── Makefile ├── README.md ├── docs ├── CHANGELOG.md ├── ConfiguringCameras.md ├── ConfiguringInfinigen.md ├── ExportingToExternalFileFormats.md ├── ExportingToSimulators.md ├── GeneratingFluidSimulations.md ├── GeneratingIndividualAssets.md ├── GroundTruthAnnotations.md ├── HelloRoom.md ├── HelloWorld.md ├── ImplementingAssets.md ├── Installation.md ├── PreGeneratedData.md ├── StaticAssets.md └── images │ ├── gt_annotations │ ├── Depth_0001_00_00.png │ ├── OcclusionBoundaries_0001_00_00.png │ ├── SurfaceNormal_0001_00_00.png │ ├── blender_rock_2d.png │ ├── blender_rock_3d.png │ ├── caves.png │ ├── petal.png │ └── warped_rocks.png │ ├── hello_room │ ├── dining.png │ ├── dining_blender.png │ ├── dining_depth.png │ └── dining_obj.png │ ├── hello_world │ ├── Depth0048_00_00.png │ ├── Image0048_00_00.png │ ├── InstanceSegmentation_0001_00_00.png │ └── SurfaceNormal_0001_00_00.png │ ├── implementing_assets │ ├── setting_up_blender_ui_1.png │ ├── setting_up_blender_ui_2.png │ ├── setting_up_blender_ui_grassdemo.png │ ├── snow_demo.png │ └── transpiler_demo.png │ ├── individual_assets │ ├── chunkyrock.png │ ├── coral.png │ └── seashells.png │ ├── infinigen.png │ ├── multiview_stereo │ ├── mvs_indoors.png │ ├── mvs_indoors_2.png │ ├── mvs_nature.png │ └── mvs_ocean.png │ ├── static_assets │ ├── couch.jpg │ ├── couch_edit.jpg │ ├── couch_x.jpg │ ├── image.jpg │ ├── image10.jpg │ ├── image11.jpg │ ├── image2.jpg │ ├── image3.jpg │ ├── image4.jpg │ ├── image5.jpg │ ├── image6.jpg │ ├── image7.jpg │ ├── image8.jpg │ ├── image9.jpg │ ├── shelf.jpg │ ├── shelf_edit.jpg │ ├── shelf_support.jpg │ ├── table.jpg │ ├── untitled10.jpg │ ├── untitled11.jpg │ ├── untitled12.jpg │ ├── untitled13.jpg │ ├── untitled14.jpg │ ├── untitled15.jpg │ ├── untitled16.jpg │ ├── untitled8.jpg │ ├── untitled9.jpg │ └── vending.jpg │ └── video_thumbnail.png ├── infinigen ├── .dockerignore ├── __init__.py ├── assets │ ├── __init__.py │ ├── color_fits.py │ ├── fluid │ │ ├── __init__.py │ │ ├── asset_cache.py │ │ ├── bounding_box.py │ │ ├── cached_factory_wrappers.py │ │ ├── duplication_geomod.py │ │ ├── flip_fluid.py │ │ ├── flip_init.py │ │ ├── fluid.py │ │ ├── fluid_scenecomp_additions.py │ │ ├── generate.py │ │ ├── liquid_particle_material.py │ │ ├── run_asset_cache.py │ │ ├── run_tests.py │ │ └── unit_tests.py │ ├── fonts │ │ ├── Chakra_Petch │ │ │ ├── ChakraPetch-Bold.ttf │ │ │ ├── ChakraPetch-BoldItalic.ttf │ │ │ ├── ChakraPetch-Italic.ttf │ │ │ ├── ChakraPetch-Light.ttf │ │ │ ├── ChakraPetch-LightItalic.ttf │ │ │ ├── ChakraPetch-Medium.ttf │ │ │ ├── ChakraPetch-MediumItalic.ttf │ │ │ ├── ChakraPetch-Regular.ttf │ │ │ ├── ChakraPetch-SemiBold.ttf │ │ │ ├── ChakraPetch-SemiBoldItalic.ttf │ │ │ └── OFL.txt │ │ ├── Dancing_Script │ │ │ ├── DancingScript-VariableFont_wght.ttf │ │ │ ├── OFL.txt │ │ │ ├── README.txt │ │ │ └── static │ │ │ │ ├── DancingScript-Bold.ttf │ │ │ │ ├── DancingScript-Medium.ttf │ │ │ │ ├── DancingScript-Regular.ttf │ │ │ │ └── DancingScript-SemiBold.ttf │ │ ├── Ga_Maamli │ │ │ ├── GaMaamli-Regular.ttf │ │ │ └── OFL.txt │ │ ├── Maname │ │ │ ├── Maname-Regular.ttf │ │ │ └── OFL.txt │ │ ├── Merriweather │ │ │ ├── Merriweather-Black.ttf │ │ │ ├── Merriweather-BlackItalic.ttf │ │ │ ├── Merriweather-Bold.ttf │ │ │ ├── Merriweather-BoldItalic.ttf │ │ │ ├── Merriweather-Italic.ttf │ │ │ ├── Merriweather-Light.ttf │ │ │ ├── Merriweather-LightItalic.ttf │ │ │ ├── Merriweather-Regular.ttf │ │ │ └── OFL.txt │ │ ├── Montserrat │ │ │ ├── Montserrat-Italic-VariableFont_wght.ttf │ │ │ ├── Montserrat-VariableFont_wght.ttf │ │ │ ├── OFL.txt │ │ │ ├── README.txt │ │ │ └── static │ │ │ │ ├── Montserrat-Black.ttf │ │ │ │ ├── Montserrat-BlackItalic.ttf │ │ │ │ ├── Montserrat-Bold.ttf │ │ │ │ ├── Montserrat-BoldItalic.ttf │ │ │ │ ├── Montserrat-ExtraBold.ttf │ │ │ │ ├── Montserrat-ExtraBoldItalic.ttf │ │ │ │ ├── Montserrat-ExtraLight.ttf │ │ │ │ ├── Montserrat-ExtraLightItalic.ttf │ │ │ │ ├── Montserrat-Italic.ttf │ │ │ │ ├── Montserrat-Light.ttf │ │ │ │ ├── Montserrat-LightItalic.ttf │ │ │ │ ├── Montserrat-Medium.ttf │ │ │ │ ├── Montserrat-MediumItalic.ttf │ │ │ │ ├── Montserrat-Regular.ttf │ │ │ │ ├── Montserrat-SemiBold.ttf │ │ │ │ ├── Montserrat-SemiBoldItalic.ttf │ │ │ │ ├── Montserrat-Thin.ttf │ │ │ │ └── Montserrat-ThinItalic.ttf │ │ ├── Open_Sans │ │ │ ├── OFL.txt │ │ │ ├── OpenSans-Italic-VariableFont_wdth,wght.ttf │ │ │ ├── OpenSans-VariableFont_wdth,wght.ttf │ │ │ ├── README.txt │ │ │ └── static │ │ │ │ ├── OpenSans-Bold.ttf │ │ │ │ ├── OpenSans-BoldItalic.ttf │ │ │ │ ├── OpenSans-ExtraBold.ttf │ │ │ │ ├── OpenSans-ExtraBoldItalic.ttf │ │ │ │ ├── OpenSans-Italic.ttf │ │ │ │ ├── OpenSans-Light.ttf │ │ │ │ ├── OpenSans-LightItalic.ttf │ │ │ │ ├── OpenSans-Medium.ttf │ │ │ │ ├── OpenSans-MediumItalic.ttf │ │ │ │ ├── OpenSans-Regular.ttf │ │ │ │ ├── OpenSans-SemiBold.ttf │ │ │ │ ├── OpenSans-SemiBoldItalic.ttf │ │ │ │ ├── OpenSans_Condensed-Bold.ttf │ │ │ │ ├── OpenSans_Condensed-BoldItalic.ttf │ │ │ │ ├── OpenSans_Condensed-ExtraBold.ttf │ │ │ │ ├── OpenSans_Condensed-ExtraBoldItalic.ttf │ │ │ │ ├── OpenSans_Condensed-Italic.ttf │ │ │ │ ├── OpenSans_Condensed-Light.ttf │ │ │ │ ├── OpenSans_Condensed-LightItalic.ttf │ │ │ │ ├── OpenSans_Condensed-Medium.ttf │ │ │ │ ├── OpenSans_Condensed-MediumItalic.ttf │ │ │ │ ├── OpenSans_Condensed-Regular.ttf │ │ │ │ ├── OpenSans_Condensed-SemiBold.ttf │ │ │ │ ├── OpenSans_Condensed-SemiBoldItalic.ttf │ │ │ │ ├── OpenSans_SemiCondensed-Bold.ttf │ │ │ │ ├── OpenSans_SemiCondensed-BoldItalic.ttf │ │ │ │ ├── OpenSans_SemiCondensed-ExtraBold.ttf │ │ │ │ ├── OpenSans_SemiCondensed-ExtraBoldItalic.ttf │ │ │ │ ├── OpenSans_SemiCondensed-Italic.ttf │ │ │ │ ├── OpenSans_SemiCondensed-Light.ttf │ │ │ │ ├── OpenSans_SemiCondensed-LightItalic.ttf │ │ │ │ ├── OpenSans_SemiCondensed-Medium.ttf │ │ │ │ ├── OpenSans_SemiCondensed-MediumItalic.ttf │ │ │ │ ├── OpenSans_SemiCondensed-Regular.ttf │ │ │ │ ├── OpenSans_SemiCondensed-SemiBold.ttf │ │ │ │ └── OpenSans_SemiCondensed-SemiBoldItalic.ttf │ │ ├── Oswald │ │ │ ├── OFL.txt │ │ │ ├── Oswald-VariableFont_wght.ttf │ │ │ ├── README.txt │ │ │ └── static │ │ │ │ ├── Oswald-Bold.ttf │ │ │ │ ├── Oswald-ExtraLight.ttf │ │ │ │ ├── Oswald-Light.ttf │ │ │ │ ├── Oswald-Medium.ttf │ │ │ │ ├── Oswald-Regular.ttf │ │ │ │ └── Oswald-SemiBold.ttf │ │ ├── Pacifico │ │ │ ├── OFL.txt │ │ │ └── Pacifico-Regular.ttf │ │ └── Playfair_Display │ │ │ ├── OFL.txt │ │ │ ├── PlayfairDisplay-Italic-VariableFont_wght.ttf │ │ │ ├── PlayfairDisplay-VariableFont_wght.ttf │ │ │ ├── README.txt │ │ │ └── static │ │ │ ├── PlayfairDisplay-Black.ttf │ │ │ ├── PlayfairDisplay-BlackItalic.ttf │ │ │ ├── PlayfairDisplay-Bold.ttf │ │ │ ├── PlayfairDisplay-BoldItalic.ttf │ │ │ ├── PlayfairDisplay-ExtraBold.ttf │ │ │ ├── PlayfairDisplay-ExtraBoldItalic.ttf │ │ │ ├── PlayfairDisplay-Italic.ttf │ │ │ ├── PlayfairDisplay-Medium.ttf │ │ │ ├── PlayfairDisplay-MediumItalic.ttf │ │ │ ├── PlayfairDisplay-Regular.ttf │ │ │ ├── PlayfairDisplay-SemiBold.ttf │ │ │ └── PlayfairDisplay-SemiBoldItalic.ttf │ ├── lighting │ │ ├── __init__.py │ │ ├── caustics_lamp.py │ │ ├── hdri_lighting.py │ │ ├── holdout_lighting.py │ │ ├── indoor_lights.py │ │ ├── sky_lighting.py │ │ └── three_point_lighting.py │ ├── material_assignments.py │ ├── materials │ │ ├── __init__.py │ │ ├── aluminumdisp2tut.py │ │ ├── art.py │ │ ├── atmosphere_light_haze.py │ │ ├── bark.py │ │ ├── bark_birch.py │ │ ├── bark_random.py │ │ ├── basic_bsdf.py │ │ ├── beak.py │ │ ├── beverage_fridge_shaders.py │ │ ├── bird.py │ │ ├── black_plastic.py │ │ ├── blackbody_shader.py │ │ ├── bone.py │ │ ├── brick.py │ │ ├── bumpy_rubber_floor.py │ │ ├── ceiling_light_shaders.py │ │ ├── ceramic.py │ │ ├── chitin.py │ │ ├── chunkyrock.py │ │ ├── cobble_stone.py │ │ ├── common.py │ │ ├── cracked_ground.py │ │ ├── dirt.py │ │ ├── dishwasher_shaders.py │ │ ├── eyeball.py │ │ ├── fabrics │ │ │ ├── __init__.py │ │ │ ├── coarse_knit_fabric.py │ │ │ ├── fabric_random.py │ │ │ ├── fine_knit_fabric.py │ │ │ ├── general_fabric.py │ │ │ ├── leather.py │ │ │ ├── lined_fabric.py │ │ │ ├── sofa_fabric.py │ │ │ └── velvet.py │ │ ├── face_size_visualizer.py │ │ ├── fish_eye_shader.py │ │ ├── fishbody.py │ │ ├── fishfin.py │ │ ├── giraffe_attr.py │ │ ├── glass.py │ │ ├── glass_volume.py │ │ ├── grass_blade_texture.py │ │ ├── hardwood_floor.py │ │ ├── horn.py │ │ ├── ice.py │ │ ├── invisible_to_camera.py │ │ ├── lamp_shaders.py │ │ ├── lava.py │ │ ├── marble.py │ │ ├── marble_regular.py │ │ ├── marble_voronoi.py │ │ ├── metal │ │ │ ├── __init__.py │ │ │ ├── brushed_metal.py │ │ │ ├── galvanized_metal.py │ │ │ ├── grained_and_polished_metal.py │ │ │ ├── hammered_metal.py │ │ │ └── metal_basic.py │ │ ├── microwave_shaders.py │ │ ├── mirror.py │ │ ├── mountain.py │ │ ├── mud.py │ │ ├── new_whitewater.py │ │ ├── nose.py │ │ ├── oven_shaders.py │ │ ├── plaster.py │ │ ├── plastic.py │ │ ├── plastics │ │ │ ├── plastic_rough.py │ │ │ └── plastic_translucent.py │ │ ├── reptile_brown_circle_attr.py │ │ ├── reptile_gray_attr.py │ │ ├── reptile_two_color_attr.py │ │ ├── river_water.py │ │ ├── rug.py │ │ ├── sand.py │ │ ├── sandstone.py │ │ ├── scale.py │ │ ├── shelf_shaders.py │ │ ├── simple_brownish.py │ │ ├── simple_greenery.py │ │ ├── simple_whitish.py │ │ ├── slimy.py │ │ ├── smoke_material.py │ │ ├── snake_plant.py │ │ ├── snake_scale.py │ │ ├── snake_shaders.py │ │ ├── soil.py │ │ ├── spider_plant.py │ │ ├── spot_sparse_attr.py │ │ ├── stone.py │ │ ├── stone_and_concrete │ │ │ └── concrete.py │ │ ├── succulent.py │ │ ├── table_marble.py │ │ ├── table_materials.py │ │ ├── text.py │ │ ├── text_no_barcode.py │ │ ├── three_color_spots.py │ │ ├── tiger_attr.py │ │ ├── tile.py │ │ ├── tiles │ │ │ ├── advanced_tiles.py │ │ │ ├── basket_weave.py │ │ │ ├── brick.py │ │ │ ├── cheveron.py │ │ │ ├── diamond.py │ │ │ ├── herringbone.py │ │ │ ├── hexagon.py │ │ │ ├── shell.py │ │ │ ├── spanish_bound.py │ │ │ ├── star.py │ │ │ ├── triangle.py │ │ │ └── utils.py │ │ ├── tongue.py │ │ ├── two_color_spots.py │ │ ├── twocolorz.py │ │ ├── utils │ │ │ ├── __init__.py │ │ │ └── surface_utils.py │ │ ├── vase_shaders.py │ │ ├── water.py │ │ ├── waterfall_material.py │ │ ├── wear_tear │ │ │ ├── procedural_edge_wear.py │ │ │ └── procedural_scratch.py │ │ └── woods │ │ │ ├── composite_wood_tile.py │ │ │ ├── crossed_wood_tile.py │ │ │ ├── hexagon_wood_tile.py │ │ │ ├── non_wood_tile.py │ │ │ ├── square_wood_tile.py │ │ │ ├── staggered_wood_tile.py │ │ │ ├── tiled_wood.py │ │ │ ├── wood.py │ │ │ ├── wood_old.py │ │ │ └── wood_tile.py │ ├── objects │ │ ├── appliances │ │ │ ├── __init__.py │ │ │ ├── beverage_fridge.py │ │ │ ├── dishwasher.py │ │ │ ├── microwave.py │ │ │ ├── oven.py │ │ │ └── tv.py │ │ ├── bathroom │ │ │ ├── __init__.py │ │ │ ├── bathroom_sink.py │ │ │ ├── bathtub.py │ │ │ ├── hardware.py │ │ │ └── toilet.py │ │ ├── cactus │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── columnar.py │ │ │ ├── generate.py │ │ │ ├── globular.py │ │ │ ├── kalidium.py │ │ │ ├── pricky_pear.py │ │ │ └── spike.py │ │ ├── clothes │ │ │ ├── __init__.py │ │ │ ├── blanket.py │ │ │ ├── pants.py │ │ │ ├── shirt.py │ │ │ └── towel.py │ │ ├── cloud │ │ │ ├── __init__.py │ │ │ ├── cloud.py │ │ │ ├── generate.py │ │ │ └── node.py │ │ ├── corals │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── diff_growth.py │ │ │ ├── elkhorn.py │ │ │ ├── fan.py │ │ │ ├── generate.py │ │ │ ├── laplacian.py │ │ │ ├── reaction_diffusion.py │ │ │ ├── star.py │ │ │ ├── tentacles.py │ │ │ ├── tree.py │ │ │ └── tube.py │ │ ├── creatures │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── beetle.py │ │ │ ├── bird.py │ │ │ ├── carnivore.py │ │ │ ├── crustacean.py │ │ │ ├── fish.py │ │ │ ├── herbivore.py │ │ │ ├── insects │ │ │ │ ├── __init__.py │ │ │ │ ├── dragonfly.py │ │ │ │ ├── parts │ │ │ │ │ ├── antenna │ │ │ │ │ │ └── dragonfly_antenna.py │ │ │ │ │ ├── body │ │ │ │ │ │ └── dragonfly_body.py │ │ │ │ │ ├── eye │ │ │ │ │ │ └── dragonfly_eye.py │ │ │ │ │ ├── hair │ │ │ │ │ │ └── principled_hair.py │ │ │ │ │ ├── head │ │ │ │ │ │ └── dragonfly_head.py │ │ │ │ │ ├── leg │ │ │ │ │ │ └── dragonfly_leg.py │ │ │ │ │ ├── mouth │ │ │ │ │ │ └── dragonfly_mouth.py │ │ │ │ │ ├── tail │ │ │ │ │ │ └── dragonfly_tail.py │ │ │ │ │ └── wing │ │ │ │ │ │ └── dragonfly_wing.py │ │ │ │ └── utils │ │ │ │ │ ├── geom_utils.py │ │ │ │ │ └── shader_utils.py │ │ │ ├── jellyfish.py │ │ │ ├── parts │ │ │ │ ├── __init__.py │ │ │ │ ├── beak.py │ │ │ │ ├── body.py │ │ │ │ ├── chameleon.py │ │ │ │ ├── crustacean │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── antenna.py │ │ │ │ │ ├── body.py │ │ │ │ │ ├── claw.py │ │ │ │ │ ├── eye.py │ │ │ │ │ ├── fin.py │ │ │ │ │ ├── leg.py │ │ │ │ │ └── tail.py │ │ │ │ ├── eye.py │ │ │ │ ├── eye_new.py │ │ │ │ ├── fin_old.py │ │ │ │ ├── foot.py │ │ │ │ ├── generic_nurbs.py │ │ │ │ ├── head.py │ │ │ │ ├── head_detail.py │ │ │ │ ├── hoof.py │ │ │ │ ├── horn.py │ │ │ │ ├── leg.py │ │ │ │ ├── nurbs_data │ │ │ │ │ ├── body_bird_duck.npy │ │ │ │ │ ├── body_bird_gull.npy │ │ │ │ │ ├── body_bird_robin.npy │ │ │ │ │ ├── body_feline_cheetah.npy │ │ │ │ │ ├── body_feline_housecat.npy │ │ │ │ │ ├── body_feline_tiger.npy │ │ │ │ │ ├── body_feline_tiger_2.npy │ │ │ │ │ ├── body_feline_wolf.npy │ │ │ │ │ ├── body_fish_bluefish.npy │ │ │ │ │ ├── body_fish_crappie.npy │ │ │ │ │ ├── body_fish_eel.npy │ │ │ │ │ ├── body_fish_pickerel.npy │ │ │ │ │ ├── body_fish_pufferfish.npy │ │ │ │ │ ├── body_fish_spadefish.npy │ │ │ │ │ ├── body_herbivore_cow.npy │ │ │ │ │ ├── body_herbivore_giraffe.npy │ │ │ │ │ ├── body_herbivore_goat.npy │ │ │ │ │ ├── body_herbivore_llama.npy │ │ │ │ │ ├── body_insect_bee.npy │ │ │ │ │ ├── body_insect_beetle.npy │ │ │ │ │ ├── body_insect_tarantula.npy │ │ │ │ │ ├── body_llama.npy │ │ │ │ │ ├── head_carnivore_tiger.npy │ │ │ │ │ ├── head_carnivore_wolf.npy │ │ │ │ │ ├── head_herbivore_cow.npy │ │ │ │ │ ├── head_herbivore_giraffe.npy │ │ │ │ │ ├── head_herbivore_goat.npy │ │ │ │ │ ├── head_herbivore_llama.npy │ │ │ │ │ ├── head_insect_beetle.npy │ │ │ │ │ └── head_insect_wasp.npy │ │ │ │ ├── reptile_detail.py │ │ │ │ ├── ridged_fin.py │ │ │ │ ├── tail.py │ │ │ │ ├── utils │ │ │ │ │ └── draw.py │ │ │ │ └── wings.py │ │ │ ├── reptile.py │ │ │ └── util │ │ │ │ ├── __init__.py │ │ │ │ ├── animation │ │ │ │ ├── __init__.py │ │ │ │ ├── curve_slither.py │ │ │ │ ├── driver_repeated.py │ │ │ │ ├── driver_wiggle.py │ │ │ │ ├── idle.py │ │ │ │ └── run_cycle.py │ │ │ │ ├── boid_swarm.py │ │ │ │ ├── cloth_sim.py │ │ │ │ ├── creature.py │ │ │ │ ├── creature_parser.py │ │ │ │ ├── creature_util.py │ │ │ │ ├── genome.py │ │ │ │ ├── geonode_part.py │ │ │ │ ├── hair.py │ │ │ │ ├── join_smoothing.py │ │ │ │ ├── joining.py │ │ │ │ ├── part_util.py │ │ │ │ ├── rigging.py │ │ │ │ └── tree.py │ │ ├── decor │ │ │ ├── __init__.py │ │ │ └── aquarium_tank.py │ │ ├── deformed_trees │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── fallen.py │ │ │ ├── generate.py │ │ │ ├── hollow.py │ │ │ ├── rotten.py │ │ │ └── truncated.py │ │ ├── elements │ │ │ ├── __init__.py │ │ │ ├── doors │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── casing.py │ │ │ │ ├── lite.py │ │ │ │ ├── louver.py │ │ │ │ └── panel.py │ │ │ ├── nature_shelf_trinkets │ │ │ │ └── generate.py │ │ │ ├── pillars.py │ │ │ ├── rug.py │ │ │ ├── staircases │ │ │ │ ├── __init__.py │ │ │ │ ├── cantilever.py │ │ │ │ ├── curved.py │ │ │ │ ├── generate.py │ │ │ │ ├── l_shaped.py │ │ │ │ ├── spiral.py │ │ │ │ ├── straight.py │ │ │ │ └── u_shaped.py │ │ │ └── warehouses │ │ │ │ ├── __init__.py │ │ │ │ ├── pallet.py │ │ │ │ └── rack.py │ │ ├── fruits │ │ │ ├── __init__.py │ │ │ ├── apple.py │ │ │ ├── blackberry.py │ │ │ ├── coconutgreen.py │ │ │ ├── coconuthairy.py │ │ │ ├── compositional_fruit.py │ │ │ ├── cross_section_lib.py │ │ │ ├── durian.py │ │ │ ├── fruit_utils.py │ │ │ ├── general_fruit.py │ │ │ ├── pineapple.py │ │ │ ├── seed_lib.py │ │ │ ├── starfruit.py │ │ │ ├── stem_lib.py │ │ │ ├── strawberry.py │ │ │ └── surfaces │ │ │ │ ├── apple_surface.py │ │ │ │ ├── blackberry_surface.py │ │ │ │ ├── coconutgreen_surface.py │ │ │ │ ├── coconuthairy_surface.py │ │ │ │ ├── durian_surface.py │ │ │ │ ├── pineapple_surface.py │ │ │ │ ├── starfruit_surface.py │ │ │ │ ├── strawberry_surface.py │ │ │ │ └── surface_utils.py │ │ ├── grassland │ │ │ ├── __init__.py │ │ │ ├── dandelion.py │ │ │ ├── flower.py │ │ │ ├── flowerplant.py │ │ │ └── grass_tuft.py │ │ ├── lamp │ │ │ ├── __init__.py │ │ │ ├── ceiling_classic_lamp.py │ │ │ ├── ceiling_lights.py │ │ │ └── lamp.py │ │ ├── leaves │ │ │ ├── __init__.py │ │ │ ├── leaf.py │ │ │ ├── leaf_broadleaf.py │ │ │ ├── leaf_ginko.py │ │ │ ├── leaf_maple.py │ │ │ ├── leaf_pine.py │ │ │ ├── leaf_v2.py │ │ │ └── leaf_wrapped.py │ │ ├── mollusk │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── generate.py │ │ │ ├── shell.py │ │ │ └── snail.py │ │ ├── monocot │ │ │ ├── __init__.py │ │ │ ├── agave.py │ │ │ ├── banana.py │ │ │ ├── generate.py │ │ │ ├── grasses.py │ │ │ ├── growth.py │ │ │ ├── kelp.py │ │ │ ├── pinecone.py │ │ │ ├── tussock.py │ │ │ └── veratrum.py │ │ ├── mushroom │ │ │ ├── __init__.py │ │ │ ├── cap.py │ │ │ ├── generate.py │ │ │ ├── growth.py │ │ │ └── stem.py │ │ ├── organizer │ │ │ ├── __init__.py │ │ │ ├── basket.py │ │ │ ├── hook.py │ │ │ └── plate_rack.py │ │ ├── particles │ │ │ ├── __init__.py │ │ │ ├── lichen.py │ │ │ ├── moss.py │ │ │ ├── particles.py │ │ │ └── pine_needle.py │ │ ├── rocks │ │ │ ├── __init__.py │ │ │ ├── blender_rock.py │ │ │ ├── boulder.py │ │ │ ├── glowing_rocks.py │ │ │ └── pile.py │ │ ├── seating │ │ │ ├── __init__.py │ │ │ ├── bed.py │ │ │ ├── bedframe.py │ │ │ ├── chairs │ │ │ │ ├── __init__.py │ │ │ │ ├── bar_chair.py │ │ │ │ ├── chair.py │ │ │ │ ├── office_chair.py │ │ │ │ └── seats │ │ │ │ │ ├── curvy_seats.py │ │ │ │ │ └── round_seats.py │ │ │ ├── mattress.py │ │ │ ├── pillow.py │ │ │ └── sofa.py │ │ ├── shelves │ │ │ ├── __init__.py │ │ │ ├── cabinet.py │ │ │ ├── cell_shelf.py │ │ │ ├── countertop.py │ │ │ ├── doors.py │ │ │ ├── drawers.py │ │ │ ├── kitchen_cabinet.py │ │ │ ├── kitchen_space.py │ │ │ ├── large_shelf.py │ │ │ ├── simple_bookcase.py │ │ │ ├── simple_desk.py │ │ │ ├── single_cabinet.py │ │ │ ├── triangle_shelf.py │ │ │ └── utils.py │ │ ├── small_plants │ │ │ ├── __init__.py │ │ │ ├── fern.py │ │ │ ├── leaf_general.py │ │ │ ├── leaf_heart.py │ │ │ ├── num_leaf_grass.py │ │ │ ├── snake_plant.py │ │ │ ├── spider_plant.py │ │ │ └── succulent.py │ │ ├── table_decorations │ │ │ ├── __init__.py │ │ │ ├── book.py │ │ │ ├── sink.py │ │ │ ├── utils.py │ │ │ └── vase.py │ │ ├── tables │ │ │ ├── __init__.py │ │ │ ├── cocktail_table.py │ │ │ ├── dining_table.py │ │ │ ├── legs │ │ │ │ ├── single_stand.py │ │ │ │ ├── square.py │ │ │ │ ├── straight.py │ │ │ │ └── wheeled.py │ │ │ ├── lofting.py │ │ │ ├── strechers.py │ │ │ ├── table_top.py │ │ │ └── table_utils.py │ │ ├── tableware │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── bottle.py │ │ │ ├── bowl.py │ │ │ ├── can.py │ │ │ ├── chopsticks.py │ │ │ ├── cup.py │ │ │ ├── food_bag.py │ │ │ ├── food_box.py │ │ │ ├── fork.py │ │ │ ├── fruit_container.py │ │ │ ├── jar.py │ │ │ ├── knife.py │ │ │ ├── lid.py │ │ │ ├── pan.py │ │ │ ├── plant_container.py │ │ │ ├── plate.py │ │ │ ├── pot.py │ │ │ ├── spoon.py │ │ │ └── wineglass.py │ │ ├── trees │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── branch.py │ │ │ ├── generate.py │ │ │ ├── tree.py │ │ │ ├── tree_flower.py │ │ │ ├── treeconfigs.py │ │ │ └── utils │ │ │ │ ├── geometrynodes.py │ │ │ │ ├── helper.py │ │ │ │ ├── materials.py │ │ │ │ └── mesh.py │ │ ├── tropic_plants │ │ │ ├── __init__.py │ │ │ ├── coconut_tree.py │ │ │ ├── leaf_banana_tree.py │ │ │ ├── leaf_palm_plant.py │ │ │ ├── leaf_palm_tree.py │ │ │ ├── palm_tree.py │ │ │ └── tropic_plant_utils.py │ │ ├── underwater │ │ │ ├── __init__.py │ │ │ ├── seaweed.py │ │ │ └── urchin.py │ │ ├── wall_decorations │ │ │ ├── __init__.py │ │ │ ├── balloon.py │ │ │ ├── range_hood.py │ │ │ ├── skirting_board.py │ │ │ ├── wall_art.py │ │ │ └── wall_shelf.py │ │ └── windows │ │ │ ├── __init__.py │ │ │ └── window.py │ ├── placement │ │ └── floating_objects.py │ ├── scatters │ │ ├── __init__.py │ │ ├── chopped_trees.py │ │ ├── clothes.py │ │ ├── coral_reef.py │ │ ├── decorative_plants.py │ │ ├── fern.py │ │ ├── flowerplant.py │ │ ├── grass.py │ │ ├── ground_leaves.py │ │ ├── ground_mushroom.py │ │ ├── ground_twigs.py │ │ ├── ivy.py │ │ ├── jellyfish.py │ │ ├── lichen.py │ │ ├── mollusk.py │ │ ├── monocots.py │ │ ├── moss.py │ │ ├── mushroom.py │ │ ├── pebbles.py │ │ ├── pine_needle.py │ │ ├── pinecone.py │ │ ├── seashells.py │ │ ├── seaweed.py │ │ ├── slime_mold.py │ │ ├── snow_layer.py │ │ ├── urchin.py │ │ └── utils │ │ │ ├── __init__.py │ │ │ ├── cluster.py │ │ │ ├── selection.py │ │ │ └── wind.py │ ├── static_assets │ │ ├── __init__.py │ │ ├── base.py │ │ ├── static_category.py │ │ └── utils.py │ ├── utils │ │ ├── __init__.py │ │ ├── autobevel.py │ │ ├── bbox_from_mesh.py │ │ ├── decorate.py │ │ ├── draw.py │ │ ├── extract_nodegroup_parts.py │ │ ├── geometry │ │ │ ├── __init__.py │ │ │ ├── cpp_utils │ │ │ │ ├── .gitignore │ │ │ │ ├── __init__.py │ │ │ │ └── bnurbs.pyx │ │ │ ├── curve.py │ │ │ ├── lofting.py │ │ │ ├── metaballs.py │ │ │ ├── nurbs.py │ │ │ └── skin_ops.py │ │ ├── laplacian.py │ │ ├── mesh.py │ │ ├── misc.py │ │ ├── nodegroup.py │ │ ├── nodegroups │ │ │ ├── __init__.py │ │ │ ├── attach.py │ │ │ ├── curve.py │ │ │ ├── geometry.py │ │ │ ├── hair.py │ │ │ ├── math.py │ │ │ ├── sculpt_v1.py │ │ │ └── shader.py │ │ ├── object.py │ │ ├── physics.py │ │ ├── reaction_diffusion.py │ │ ├── shapes.py │ │ ├── shortest_path.py │ │ └── uv.py │ └── weather │ │ ├── __init__.py │ │ ├── kole_clouds.py │ │ ├── particles.py │ │ └── wind_effectors.py ├── core │ ├── __init__.py │ ├── constraints │ │ ├── checks.py │ │ ├── constraint_language │ │ │ ├── __init__.py │ │ │ ├── constants.py │ │ │ ├── expression.py │ │ │ ├── gather.py │ │ │ ├── geometry.py │ │ │ ├── relations.py │ │ │ ├── result.py │ │ │ ├── rooms.py │ │ │ ├── set_reasoning.py │ │ │ ├── types.py │ │ │ └── util.py │ │ ├── evaluator │ │ │ ├── __init__.py │ │ │ ├── domain_contains.py │ │ │ ├── eval_memo.py │ │ │ ├── evaluate.py │ │ │ ├── indoor_util.py │ │ │ └── node_impl │ │ │ │ ├── __init__.py │ │ │ │ ├── impl_bindings.py │ │ │ │ ├── rooms.py │ │ │ │ ├── symmetry.py │ │ │ │ └── trimesh_geometry.py │ │ ├── example_solver │ │ │ ├── __init__.py │ │ │ ├── annealing.py │ │ │ ├── geometry │ │ │ │ ├── dof.py │ │ │ │ ├── parse_scene.py │ │ │ │ ├── planes.py │ │ │ │ ├── stability.py │ │ │ │ └── validity.py │ │ │ ├── greedy │ │ │ │ ├── __init__.py │ │ │ │ ├── active_for_stage.py │ │ │ │ ├── all_substitutions.py │ │ │ │ └── constraint_partition.py │ │ │ ├── moves │ │ │ │ ├── __init__.py │ │ │ │ ├── addition.py │ │ │ │ ├── deletion.py │ │ │ │ ├── moves.py │ │ │ │ ├── pose.py │ │ │ │ ├── reassignment.py │ │ │ │ └── swap.py │ │ │ ├── populate.py │ │ │ ├── propose_continous.py │ │ │ ├── propose_discrete.py │ │ │ ├── propose_relations.py │ │ │ ├── room │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── contour.py │ │ │ │ ├── decorate.py │ │ │ │ ├── floor_plan.py │ │ │ │ ├── graph.py │ │ │ │ ├── segment.py │ │ │ │ ├── solidifier.py │ │ │ │ ├── solver.py │ │ │ │ └── utils.py │ │ │ ├── solve.py │ │ │ └── state_def.py │ │ ├── reasoning │ │ │ ├── __init__.py │ │ │ ├── constraint_bounding.py │ │ │ ├── constraint_constancy.py │ │ │ ├── constraint_domain.py │ │ │ ├── domain.py │ │ │ ├── domain_substitute.py │ │ │ └── expr_equal.py │ │ └── usage_lookup.py │ ├── execute_tasks.py │ ├── generator.py │ ├── init.py │ ├── nodes │ │ ├── __init__.py │ │ ├── compatibility.py │ │ ├── node_info.py │ │ ├── node_transpiler │ │ │ ├── __init__.py │ │ │ ├── changelog.md │ │ │ ├── transpiler.py │ │ │ └── transpiler_dev_script.py │ │ ├── node_utils.py │ │ ├── node_wrangler.py │ │ ├── nodegroups │ │ │ ├── __init__.py │ │ │ └── transfer_attributes.py │ │ ├── shader_utils.py │ │ └── utils.py │ ├── placement │ │ ├── __init__.py │ │ ├── animation_policy.py │ │ ├── camera.py │ │ ├── density.py │ │ ├── detail.py │ │ ├── factory.py │ │ ├── instance_scatter.py │ │ ├── particles.py │ │ ├── path_finding.py │ │ ├── placement.py │ │ └── split_in_view.py │ ├── rendering │ │ ├── __init__.py │ │ ├── post_render.py │ │ ├── render.py │ │ └── resample.py │ ├── surface.py │ ├── tagging.py │ ├── tags.py │ └── util │ │ ├── __init__.py │ │ ├── bevelling.py │ │ ├── blender.py │ │ ├── camera.py │ │ ├── color.py │ │ ├── exporting.py │ │ ├── imu.py │ │ ├── logging.py │ │ ├── math.py │ │ ├── organization.py │ │ ├── pipeline.py │ │ ├── random.py │ │ └── test_utils.py ├── datagen │ ├── __init__.py │ ├── configs │ │ ├── .gitignore │ │ ├── __init__.py │ │ ├── asset_demo.gin │ │ ├── base.gin │ │ ├── compute_platform │ │ │ ├── __init__.py │ │ │ ├── local_128GB.gin │ │ │ ├── local_16GB.gin │ │ │ ├── local_256GB.gin │ │ │ ├── local_64GB.gin │ │ │ ├── slurm.gin │ │ │ ├── slurm_1h.gin │ │ │ ├── slurm_cpuheavy.gin │ │ │ └── slurm_high_memory.gin │ │ ├── cuda_terrain.gin │ │ ├── data_schema │ │ │ ├── __init__.py │ │ │ ├── block_terrain_experiment.gin │ │ │ ├── monocular.gin │ │ │ ├── monocular_flow.gin │ │ │ ├── monocular_video.gin │ │ │ ├── stereo.gin │ │ │ ├── stereo_1h_jobs.gin │ │ │ └── stereo_video.gin │ │ ├── export.gin │ │ ├── gt_options │ │ │ ├── blender_gt.gin │ │ │ ├── gt_test.gin │ │ │ ├── opengl_gt.gin │ │ │ └── opengl_gt_noshortrender.gin │ │ ├── indoor_background_configs.gin │ │ ├── stdout_inline.gin │ │ └── upload.gin │ ├── customgt │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── dependencies │ │ │ └── glad │ │ │ │ ├── include │ │ │ │ ├── EGL │ │ │ │ │ └── eglplatform.h │ │ │ │ ├── KHR │ │ │ │ │ └── khrplatform.h │ │ │ │ └── glad │ │ │ │ │ ├── glad.h │ │ │ │ │ └── glad_egl.h │ │ │ │ └── src │ │ │ │ ├── glad.c │ │ │ │ └── glad_egl.c │ │ ├── glsl │ │ │ ├── hair.frag │ │ │ ├── hair.geom │ │ │ ├── hair.vert │ │ │ ├── next_wings.vert │ │ │ ├── spine.frag │ │ │ ├── spine.geom │ │ │ ├── wings.frag │ │ │ ├── wings.geom │ │ │ └── wings.vert │ │ ├── include │ │ │ ├── blender_object.hpp │ │ │ ├── buffer_arrays.hpp │ │ │ ├── camera_view.hpp │ │ │ ├── io.hpp │ │ │ ├── load_blender_mesh.hpp │ │ │ ├── shader.hpp │ │ │ ├── string_tools.hpp │ │ │ └── utils.hpp │ │ ├── main.cpp │ │ ├── show.py │ │ └── src │ │ │ ├── blender_object.cpp │ │ │ ├── buffer_arrays.cpp │ │ │ ├── camera_view.cpp │ │ │ ├── io.cpp │ │ │ ├── load_blender_mesh.cpp │ │ │ ├── shader.cpp │ │ │ ├── string_tools.cpp │ │ │ └── utils.cpp │ ├── job_funcs.py │ ├── manage_jobs.py │ ├── monitor_tasks.py │ ├── states.py │ └── util │ │ ├── __init__.py │ │ ├── cancel_jobs.py │ │ ├── cleanup.py │ │ ├── google_drive_client.py │ │ ├── show_gpu_table.py │ │ ├── smb_client.py │ │ ├── submitit_emulator.py │ │ ├── template.html │ │ └── upload_util.py ├── launch_blender.py ├── terrain │ ├── .gitignore │ ├── __init__.py │ ├── assets │ │ ├── caves │ │ │ ├── __init__.py │ │ │ ├── cfg.txt │ │ │ ├── core.py │ │ │ ├── geometry_utils.py │ │ │ └── pcfg.py │ │ ├── landtiles │ │ │ ├── __init__.py │ │ │ ├── ant_landscape.py │ │ │ ├── core.py │ │ │ └── custom.py │ │ ├── ocean.py │ │ └── upsidedown_mountains.py │ ├── core.py │ ├── elements │ │ ├── atmosphere.py │ │ ├── caves.py │ │ ├── core.py │ │ ├── ground.py │ │ ├── landtiles.py │ │ ├── mountains.py │ │ ├── upsidedown_mountains.py │ │ ├── voronoi_rocks.py │ │ ├── warped_rocks.py │ │ └── waterbody.py │ ├── land_process │ │ ├── erosion.py │ │ └── snowfall.py │ ├── marching_cubes │ │ ├── .gitignore │ │ └── _marching_cubes_lewiner_cy.pyx │ ├── mesh_to_sdf │ │ ├── LICENSE │ │ ├── __init__.py │ │ ├── pyrender_wrapper.py │ │ ├── scan.py │ │ ├── shaders │ │ │ ├── mesh.frag │ │ │ └── mesh.vert │ │ ├── surface_point_cloud.py │ │ └── utils.py │ ├── mesher │ │ ├── __init__.py │ │ ├── _marching_cubes_lewiner.py │ │ ├── _marching_cubes_lewiner_luts.py │ │ ├── cube_spherical_mesher.py │ │ ├── frontview_spherical_mesher.py │ │ ├── spherical_mesher.py │ │ └── uniform_mesher.py │ ├── scene.py │ ├── source │ │ ├── common │ │ │ ├── elements │ │ │ │ ├── atmosphere.h │ │ │ │ ├── caves.h │ │ │ │ ├── ground.h │ │ │ │ ├── landtiles.h │ │ │ │ ├── mountains.h │ │ │ │ ├── upsidedown_mountains.h │ │ │ │ ├── voronoi_rocks.h │ │ │ │ ├── warped_rocks.h │ │ │ │ └── waterbody.h │ │ │ ├── surfaces │ │ │ │ ├── chunkyrock.h │ │ │ │ ├── cobble_stone.h │ │ │ │ ├── cracked_ground.h │ │ │ │ ├── dirt.h │ │ │ │ ├── ice.h │ │ │ │ ├── mountain.h │ │ │ │ ├── mud.h │ │ │ │ ├── sand.h │ │ │ │ ├── sandstone.h │ │ │ │ ├── snow.h │ │ │ │ ├── soil.h │ │ │ │ └── stone.h │ │ │ └── utils │ │ │ │ ├── FastNoiseLite.h │ │ │ │ ├── elements_util.h │ │ │ │ ├── smooth_bool_ops.h │ │ │ │ └── vectors.h │ │ ├── cpu │ │ │ ├── elements │ │ │ │ ├── atmosphere.cpp │ │ │ │ ├── core.cpp │ │ │ │ ├── ground.cpp │ │ │ │ ├── header.h │ │ │ │ ├── landtiles.cpp │ │ │ │ ├── mountains.cpp │ │ │ │ ├── upsidedown_mountains.cpp │ │ │ │ ├── voronoi_rocks.cpp │ │ │ │ ├── warped_rocks.cpp │ │ │ │ └── waterbody.cpp │ │ │ ├── meshing │ │ │ │ ├── cube_spherical_mesher.cpp │ │ │ │ ├── frontview_spherical_mesher.cpp │ │ │ │ ├── uniform_mesher.cpp │ │ │ │ ├── utils.cpp │ │ │ │ └── visibility_test.cpp │ │ │ ├── soil_machine │ │ │ │ ├── SoilMachine.cpp │ │ │ │ ├── include │ │ │ │ │ ├── FastNoiseLite.h │ │ │ │ │ ├── distribution.h │ │ │ │ │ └── vertexpool.h │ │ │ │ ├── io.h │ │ │ │ ├── layermap.h │ │ │ │ ├── particle │ │ │ │ │ ├── particle.h │ │ │ │ │ ├── water.h │ │ │ │ │ └── wind.h │ │ │ │ ├── soil │ │ │ │ │ ├── README.md │ │ │ │ │ ├── default.soil │ │ │ │ │ ├── rockgravelpebbles.soil │ │ │ │ │ ├── rockgravelpebblessand.soil │ │ │ │ │ ├── rocksand.soil │ │ │ │ │ └── sand.soil │ │ │ │ └── surface.h │ │ │ ├── surfaces │ │ │ │ ├── chunkyrock.cpp │ │ │ │ ├── cobble_stone.cpp │ │ │ │ ├── cracked_ground.cpp │ │ │ │ ├── dirt.cpp │ │ │ │ ├── header.h │ │ │ │ ├── ice.cpp │ │ │ │ ├── mountain.cpp │ │ │ │ ├── mud.cpp │ │ │ │ ├── sand.cpp │ │ │ │ ├── sandstone.cpp │ │ │ │ ├── snow.cpp │ │ │ │ ├── soil.cpp │ │ │ │ └── stone.cpp │ │ │ └── utils │ │ │ │ └── FastNoiseLite.cpp │ │ └── cuda │ │ │ ├── elements │ │ │ ├── atmosphere.cu │ │ │ ├── core.cu │ │ │ ├── ground.cu │ │ │ ├── header.h │ │ │ ├── landtiles.cu │ │ │ ├── mountains.cu │ │ │ ├── upsidedown_mountains.cu │ │ │ ├── voronoi_rocks.cu │ │ │ ├── warped_rocks.cu │ │ │ └── waterbody.cu │ │ │ ├── surfaces │ │ │ ├── chunkyrock.cu │ │ │ ├── cobble_stone.cu │ │ │ ├── cracked_ground.cu │ │ │ ├── dirt.cu │ │ │ ├── header.h │ │ │ ├── ice.cu │ │ │ ├── mountain.cu │ │ │ ├── mud.cu │ │ │ ├── sand.cu │ │ │ ├── sandstone.cu │ │ │ ├── snow.cu │ │ │ ├── soil.cu │ │ │ └── stone.cu │ │ │ └── utils │ │ │ └── FastNoiseLite.cu │ ├── surface_kernel │ │ ├── core.py │ │ └── kernelizer.py │ └── utils │ │ ├── __init__.py │ │ ├── camera.py │ │ ├── ctype_util.py │ │ ├── image_processing.py │ │ ├── kernelizer_util.py │ │ ├── logging.py │ │ ├── mesh.py │ │ └── random.py └── tools │ ├── __init__.py │ ├── blendscript_import_infinigen.py │ ├── blendscript_path_append.py │ ├── compress_masks.py │ ├── compute_occlusion_masks.py │ ├── config │ └── demo_config.yaml │ ├── convert_displacement.py │ ├── datarelease_toolkit.py │ ├── dataset_loader.py │ ├── download_pregenerated_data.py │ ├── export.py │ ├── ground_truth │ ├── __init__.py │ ├── bounding_boxes_3d.py │ ├── depth_to_normals.py │ ├── optical_flow_warp.py │ ├── rigid_warp.py │ └── segmentation_lookup.py │ ├── indoor_profile.py │ ├── isaac_sim.py │ ├── perceptual │ ├── analysis.ipynb │ ├── create_pairs.py │ ├── create_submission.py │ ├── perceptual_extract.py │ └── rename.py │ ├── process_mvs_data.py │ ├── process_static_meshes.py │ ├── results │ ├── __init__.py │ ├── aggregate_job_stats.py │ ├── analyze_crash_reasons.py │ ├── bremm.png │ ├── job_stats.py │ ├── make_grid_figure.py │ ├── parse_times.py │ ├── parse_videos.py │ ├── resource_stats.py │ ├── scatter_figure.py │ ├── strip_alpha_background.py │ ├── summarize.py │ ├── visualize_planar_graph.py │ └── visualize_traj.py │ ├── submit_asset_cache.py │ ├── suffixes.py │ ├── template.html │ └── terrain │ ├── generate_terrain_assets.py │ ├── kernelize_surfaces.py │ ├── landtile_viewer.py │ ├── palette │ ├── .gitignore │ ├── demo1.png │ ├── demo2.png │ ├── demo3.png │ ├── demo4.png │ ├── palette.py │ └── readme.md │ └── params_parser.py ├── infinigen_examples ├── __init__.py ├── asset_parameters.py ├── configs_indoor │ ├── base_indoors.gin │ ├── disable │ │ ├── no_details.gin │ │ └── no_objects.gin │ ├── export_upload.gin │ ├── fast_solve.gin │ ├── multistory.gin │ ├── overhead.gin │ ├── singleroom.gin │ └── topview.gin ├── configs_nature │ ├── .gitignore │ ├── asset_demo.gin │ ├── base.gin │ ├── base_nature.gin │ ├── disable_assets │ │ ├── no_assets.gin │ │ ├── no_creatures.gin │ │ ├── no_landlab.gin │ │ ├── no_particles.gin │ │ └── no_rocks.gin │ ├── extras │ │ ├── experimental.gin │ │ ├── overhead.gin │ │ ├── stereo_training.gin │ │ ├── use_cached_fire.gin │ │ └── use_on_the_fly_fire.gin │ ├── monocular.gin │ ├── multiview_stereo.gin │ ├── noisy_video.gin │ ├── palette │ │ ├── desert.json │ │ ├── mountain soil.json │ │ ├── sandstone.json │ │ └── water.json │ ├── performance │ │ ├── dev.gin │ │ ├── fast_terrain_assets.gin │ │ ├── high_quality_terrain.gin │ │ ├── reuse_terrain_assets.gin │ │ └── simple.gin │ ├── scene_types │ │ ├── arctic.gin │ │ ├── canyon.gin │ │ ├── cave.gin │ │ ├── cliff.gin │ │ ├── coast.gin │ │ ├── coral_reef.gin │ │ ├── desert.gin │ │ ├── forest.gin │ │ ├── kelp_forest.gin │ │ ├── mountain.gin │ │ ├── plain.gin │ │ ├── river.gin │ │ ├── snowy_mountain.gin │ │ └── under_water.gin │ ├── scene_types_fluidsim │ │ ├── simulated_river.gin │ │ └── tilted_river.gin │ ├── surface_registry.gin │ └── trailer_video.gin ├── constraints │ ├── home.py │ ├── semantics.py │ └── util.py ├── generate_asset_demo.py ├── generate_asset_parameters.py ├── generate_individual_assets.py ├── generate_indoors.py ├── generate_material_balls.py ├── generate_nature.py └── util │ └── generate_indoors_util.py ├── pyproject.toml ├── scripts ├── eevee_render.py ├── indoor.sh ├── install │ ├── compile_flip_fluids.sh │ ├── compile_opengl.sh │ ├── compile_terrain.sh │ └── interactive_blender.sh ├── launch │ ├── hello_world.sh │ └── hello_world_stepbystep.sh ├── rebuttal.sh └── rebuttal_retry_render.sh ├── setup.py └── tests ├── assets ├── list_displaced_materials.txt ├── list_indoor_materials.txt ├── list_indoor_meshes.txt ├── list_nature_materials.txt ├── list_nature_meshes.txt ├── list_scatters.txt ├── test_materials_basic.py ├── test_meshes_basic.py ├── test_placeholders.py └── test_scatters_basic.py ├── conftest.py ├── constraints ├── test_constraint_bounding.py ├── test_constraint_domain.py ├── test_constraint_language.py ├── test_constraint_relations.py ├── test_reldom.py ├── test_tags.py └── test_tagset_operations.py ├── core ├── test_execute_tasks.py ├── test_gins.py ├── test_imu.py └── test_tagging.py ├── datagen └── test_manage_jobs.py ├── integration ├── compare.py ├── launch.sh ├── manual_integration_check.py ├── run_tests.sh └── template.html ├── list_displaced_materials.txt ├── material_balls.txt ├── solver ├── test_asset_surfaces.py ├── test_constraint_evaluator.py ├── test_greedy_partition.py ├── test_greedy_stages.py ├── test_greedy_substitutions.py ├── test_stable_against.py └── test_state_def.py ├── test_terrain_basic.py └── tools └── test_export.py /.clang-format: -------------------------------------------------------------------------------- 1 | BasedOnStyle: Microsoft 2 | ColumnLimit: 100 -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | end_of_line = lf 7 | indent_size = 4 8 | indent_style = space 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [{Makefile,*.mak}] 13 | indent_size = 1 14 | indent_style = tab 15 | 16 | [*.md] 17 | trim_trailing_whitespace = false 18 | 19 | [{Makefile,*.sh,*.yml}] 20 | indent_size = 2 -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf whitespace=tab-in-indent,blank-at-eol,tabwidth=4 2 | Makefile text whitespace=-tab-in-indent,blank-at-eol,tabwidth=4 3 | *.eot binary 4 | *.gif binary 5 | *.jpeg binary 6 | *.jpg binary 7 | *.pdf binary 8 | *.png binary 9 | *.svg binary 10 | *.ttf binary 11 | *.woff binary 12 | *.woff2 binary 13 | *.zip binary 14 | *.tgz binary 15 | *.gz binary -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/ask-for-help.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Question 3 | about: Ask for help using the system 4 | title: "" 5 | labels: 'question' 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## Steps to Reproduce 11 | If this relates to running the codebase, please provide steps to reproduce: 12 | 13 | ### What version of the code were you using? 14 | Tell us the commit & commit hash from `git log` 15 | 16 | ### What command did you run? 17 | 18 | 19 | ### What are your FULL output logs? 20 | Provide the FULL output logs from your command as a txt file. 21 | 22 | ### If this is your first time running Infinigen, what are the full install logs?** 23 | Run `pip install -v -e . > logs.txt 2>&1` and send logs.txt as an attachment. 24 | 25 | 26 | ### Platform 27 | - OS & OS Version: 28 | - GPU (?) : 29 | - GPU Driver Version (?) : 30 | - RAM (GB): 31 | 32 | # Additional context 33 | Add any other context about the problem here. 34 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Report an issue with using or installing infinigen 4 | title: "" 5 | labels: 'bug' 6 | assignees: '' 7 | 8 | --- 9 | 10 | # Describe the bug 11 | A clear and concise description of what the bug is. 12 | 13 | ## Steps to Reproduce 14 | 15 | ### What version of the code were you using? 16 | Tell us the commit & commit hash from `git log` 17 | 18 | ### What command did you run? 19 | 20 | 21 | ### What are your FULL output logs? 22 | Provide the FULL output logs from your command as a txt file. 23 | 24 | ### If this is your first time running Infinigen, what are the full install logs?** 25 | Run `pip install -v -e . > logs.txt 2>&1` and send logs.txt as an attachment. 26 | 27 | 28 | ### Platform 29 | - OS & OS Version: 30 | - GPU (?) : 31 | - GPU Driver Version (?) : 32 | - RAM (GB): 33 | 34 | # Additional context 35 | Add any other context about the problem here. 36 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/other.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Other 3 | about: "" 4 | title: "" 5 | labels: 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/suggestion.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Suggestion 3 | about: Suggest a new feature 4 | title: "" 5 | labels: 'enhancement' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the feature you would like to see implemented** 11 | 12 | -------------------------------------------------------------------------------- /.github/backup_CODEOWNERS: -------------------------------------------------------------------------------- 1 | # CODEOWNERS 2 | # https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners 3 | 4 | # This file specifies only who must review each file, IE, who is the primary maintainer / responsibility holder 5 | 6 | # araistrick will review everything except where specified below 7 | * @araistrick 8 | 9 | infinigen/terrain/* @mazeyu 10 | 11 | infinigen/core/constraints/evaluator/node_impl/* @karhankayan 12 | infinigen/core/constraints/example_solver/room/* @JerryLingjieMei 13 | 14 | infinigen/tools/export.py @David-Yan-1 15 | 16 | infinigen/assets/utils/* @JerryLingjieMei 17 | infinigen/assets/fluid/* @karhankayan 18 | 19 | # Jerry will review all object assets except where specified below 20 | infinigen/assets/objects/* @JerryLingjieMei 21 | infinigen/assets/objects/creatures/* @araistrick 22 | infinigen/assets/objects/trees/* @araistrick 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | Python-* 2 | Python-*.tgz 3 | blender 4 | blender.tar.xz 5 | Blender.app 6 | 7 | .nfs* 8 | 9 | *.c 10 | 11 | .coverage 12 | coverage.xml 13 | 14 | */rclone.zip 15 | */miniconda.sh 16 | 17 | .vscode 18 | */wandb 19 | .vscode 20 | 21 | slurm-*.out 22 | __pycache__ 23 | *.blend 24 | *.blend1 25 | *.obj 26 | *.DS_Store 27 | **._.DS_Store 28 | **.swp 29 | 30 | .idea 31 | Blender.app/ 32 | blender.dmg 33 | screenlog.* 34 | 35 | dev_install.sh 36 | 37 | dev.py 38 | 39 | cache 40 | Blender-FLIP-Fluids 41 | *.mp4 42 | 43 | *.npz 44 | *.obj 45 | *.blend 46 | *.blend1 47 | *.out 48 | profiles_*.npz 49 | outputs 50 | outputs_scratch 51 | snippets 52 | resources 53 | times.txt 54 | wandb 55 | screenlog.0 56 | polycounts.txt 57 | START_* 58 | FINISH_* 59 | *_times.txt 60 | _start.txt 61 | config/custom.gin 62 | *.so 63 | *pyx.cpp 64 | blends 65 | generated_surface_script.py 66 | build 67 | *egg-info 68 | dist 69 | build 70 | blends 71 | *.ipynb_checkpoints 72 | 73 | process_mesh 74 | worldgen 75 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/astral-sh/ruff-pre-commit 3 | # Ruff version. 4 | rev: v0.4.9 5 | hooks: 6 | # Run the linter. 7 | - id: ruff 8 | # Sort imports 9 | - id: ruff 10 | args: [--select, I, --fix] 11 | # Run the formatter. 12 | - id: ruff-format 13 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | ARG APP_IMAGE=continuumio/miniconda3 2 | FROM ${APP_IMAGE} 3 | ARG APP_IMAGE 4 | ENV PATH="/root/miniconda3/bin:${PATH}" 5 | RUN if [ "$APP_IMAGE" = "nvidia/cuda:12.0.0-devel-ubuntu22.04" ]; then \ 6 | echo "Using CUDA image" && \ 7 | apt-get update && \ 8 | apt-get install -y unzip sudo git g++ libglm-dev libglew-dev libglfw3-dev libgles2-mesa-dev zlib1g-dev wget cmake vim libxi6 libgconf-2-4 && \ 9 | wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && \ 10 | mkdir /root/.conda && \ 11 | bash Miniconda3-latest-Linux-x86_64.sh -b && \ 12 | rm -f Miniconda3-latest-Linux-x86_64.sh && \ 13 | apt-get install -y libxkbcommon-x11-0; \ 14 | else \ 15 | echo "Using Conda image" && \ 16 | apt-get update -yq && \ 17 | apt-get install -yq cmake g++ libgconf-2-4 libgles2-mesa-dev libglew-dev libglfw3-dev libglm-dev libxi6 sudo unzip vim zlib1g-dev && \ 18 | apt-get install -y libxkbcommon-x11-0; \ 19 | fi 20 | 21 | RUN mkdir /opt/infinigen 22 | WORKDIR /opt/infinigen 23 | COPY . . 24 | RUN conda init bash && \ 25 | . ~/.bashrc && \ 26 | conda create --name infinigen python=3.11 -y && \ 27 | conda activate infinigen && \ 28 | pip install -e ".[dev]" 29 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | # Inspired by https://github.com/pytorch/pytorch/blob/main/MANIFEST.in 2 | 3 | # Explanation: files denoted here are excluded from `python setup.py sdist`, 4 | # but some are still explicitly included in the .whl via 5 | 6 | include .gitmodules 7 | 8 | recursive-include infinigen *.* 9 | recursive-include tests *.* 10 | recursive-include docs *.* 11 | recursive-include infinigen_examples *.* 12 | 13 | prune */__pycache__ 14 | prune infinigen/datagen/customgt/build/* 15 | prune infinigen/datagen/customgt/dependencies/* 16 | 17 | global-exclude *.o *.so *.pyc .git *.png -------------------------------------------------------------------------------- /docs/images/gt_annotations/Depth_0001_00_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/gt_annotations/Depth_0001_00_00.png -------------------------------------------------------------------------------- /docs/images/gt_annotations/OcclusionBoundaries_0001_00_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/gt_annotations/OcclusionBoundaries_0001_00_00.png -------------------------------------------------------------------------------- /docs/images/gt_annotations/SurfaceNormal_0001_00_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/gt_annotations/SurfaceNormal_0001_00_00.png -------------------------------------------------------------------------------- /docs/images/gt_annotations/blender_rock_2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/gt_annotations/blender_rock_2d.png -------------------------------------------------------------------------------- /docs/images/gt_annotations/blender_rock_3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/gt_annotations/blender_rock_3d.png -------------------------------------------------------------------------------- /docs/images/gt_annotations/caves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/gt_annotations/caves.png -------------------------------------------------------------------------------- /docs/images/gt_annotations/petal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/gt_annotations/petal.png -------------------------------------------------------------------------------- /docs/images/gt_annotations/warped_rocks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/gt_annotations/warped_rocks.png -------------------------------------------------------------------------------- /docs/images/hello_room/dining.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/hello_room/dining.png -------------------------------------------------------------------------------- /docs/images/hello_room/dining_blender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/hello_room/dining_blender.png -------------------------------------------------------------------------------- /docs/images/hello_room/dining_depth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/hello_room/dining_depth.png -------------------------------------------------------------------------------- /docs/images/hello_room/dining_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/hello_room/dining_obj.png -------------------------------------------------------------------------------- /docs/images/hello_world/Depth0048_00_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/hello_world/Depth0048_00_00.png -------------------------------------------------------------------------------- /docs/images/hello_world/Image0048_00_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/hello_world/Image0048_00_00.png -------------------------------------------------------------------------------- /docs/images/hello_world/InstanceSegmentation_0001_00_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/hello_world/InstanceSegmentation_0001_00_00.png -------------------------------------------------------------------------------- /docs/images/hello_world/SurfaceNormal_0001_00_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/hello_world/SurfaceNormal_0001_00_00.png -------------------------------------------------------------------------------- /docs/images/implementing_assets/setting_up_blender_ui_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/implementing_assets/setting_up_blender_ui_1.png -------------------------------------------------------------------------------- /docs/images/implementing_assets/setting_up_blender_ui_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/implementing_assets/setting_up_blender_ui_2.png -------------------------------------------------------------------------------- /docs/images/implementing_assets/setting_up_blender_ui_grassdemo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/implementing_assets/setting_up_blender_ui_grassdemo.png -------------------------------------------------------------------------------- /docs/images/implementing_assets/snow_demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/implementing_assets/snow_demo.png -------------------------------------------------------------------------------- /docs/images/implementing_assets/transpiler_demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/implementing_assets/transpiler_demo.png -------------------------------------------------------------------------------- /docs/images/individual_assets/chunkyrock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/individual_assets/chunkyrock.png -------------------------------------------------------------------------------- /docs/images/individual_assets/coral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/individual_assets/coral.png -------------------------------------------------------------------------------- /docs/images/individual_assets/seashells.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/individual_assets/seashells.png -------------------------------------------------------------------------------- /docs/images/infinigen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/infinigen.png -------------------------------------------------------------------------------- /docs/images/multiview_stereo/mvs_indoors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/multiview_stereo/mvs_indoors.png -------------------------------------------------------------------------------- /docs/images/multiview_stereo/mvs_indoors_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/multiview_stereo/mvs_indoors_2.png -------------------------------------------------------------------------------- /docs/images/multiview_stereo/mvs_nature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/multiview_stereo/mvs_nature.png -------------------------------------------------------------------------------- /docs/images/multiview_stereo/mvs_ocean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/multiview_stereo/mvs_ocean.png -------------------------------------------------------------------------------- /docs/images/static_assets/couch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/couch.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/couch_edit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/couch_edit.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/couch_x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/couch_x.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/image.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/image10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/image10.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/image11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/image11.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/image2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/image2.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/image3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/image3.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/image4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/image4.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/image5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/image5.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/image6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/image6.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/image7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/image7.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/image8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/image8.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/image9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/image9.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/shelf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/shelf.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/shelf_edit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/shelf_edit.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/shelf_support.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/shelf_support.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/table.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/table.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/untitled10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/untitled10.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/untitled11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/untitled11.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/untitled12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/untitled12.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/untitled13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/untitled13.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/untitled14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/untitled14.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/untitled15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/untitled15.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/untitled16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/untitled16.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/untitled8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/untitled8.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/untitled9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/untitled9.jpg -------------------------------------------------------------------------------- /docs/images/static_assets/vending.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/static_assets/vending.jpg -------------------------------------------------------------------------------- /docs/images/video_thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/docs/images/video_thumbnail.png -------------------------------------------------------------------------------- /infinigen/.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/.dockerignore -------------------------------------------------------------------------------- /infinigen/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | 3 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory 4 | # of this source tree. 5 | 6 | import logging 7 | from pathlib import Path 8 | 9 | __version__ = "1.12.3" 10 | 11 | 12 | def repo_root(): 13 | return Path(__file__).parent.parent 14 | -------------------------------------------------------------------------------- /infinigen/assets/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | 3 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory 4 | # of this source tree. 5 | -------------------------------------------------------------------------------- /infinigen/assets/fluid/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | 3 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory 4 | # of this source tree. 5 | 6 | from .asset_cache import FireCachingSystem 7 | from .cached_factory_wrappers import ( 8 | CachedBoulderFactory, 9 | CachedBushFactory, 10 | CachedCactusFactory, 11 | CachedCreatureFactory, 12 | CachedTreeFactory, 13 | ) 14 | from .flip_fluid import make_beach, make_river, make_still_water, make_tilted_river 15 | from .fluid import set_fire_to_assets 16 | from .fluid_scenecomp_additions import cached_fire_scenecomp_options 17 | -------------------------------------------------------------------------------- /infinigen/assets/fluid/bounding_box.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Karhan Kayan 5 | 6 | 7 | from infinigen.core import surface 8 | from infinigen.core.nodes.node_wrangler import Nodes, NodeWrangler 9 | 10 | 11 | def geometry_geometry_nodes(nw: NodeWrangler, obj): 12 | # Code generated using version 2.4.3 of the node_transpiler 13 | 14 | object_info = nw.new_node(Nodes.ObjectInfo, input_kwargs={"Object": obj}) 15 | 16 | bounding_box = nw.new_node( 17 | Nodes.BoundingBox, input_kwargs={"Geometry": object_info.outputs["Geometry"]} 18 | ) 19 | 20 | object_info.transform_space = "RELATIVE" 21 | 22 | group_output = nw.new_node( 23 | Nodes.GroupOutput, 24 | input_kwargs={"Geometry": bounding_box.outputs["Bounding Box"]}, 25 | ) 26 | 27 | 28 | def apply(bounding_box, obj, selection=None, **kwargs): 29 | surface.add_geomod( 30 | bounding_box, 31 | geometry_geometry_nodes, 32 | selection=selection, 33 | attributes=[], 34 | input_kwargs=dict(obj=obj), 35 | ) 36 | -------------------------------------------------------------------------------- /infinigen/assets/fluid/cached_factory_wrappers.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Karhan Kayan 5 | 6 | from infinigen.assets.objects.cactus import CactusFactory 7 | from infinigen.assets.objects.creatures import CarnivoreFactory 8 | from infinigen.assets.objects.rocks.boulder import BoulderFactory 9 | from infinigen.assets.objects.trees import BushFactory, TreeFactory 10 | 11 | 12 | class CachedBoulderFactory(BoulderFactory): 13 | pass 14 | 15 | 16 | class CachedCactusFactory(CactusFactory): 17 | pass 18 | 19 | 20 | class CachedCreatureFactory(CarnivoreFactory): 21 | pass 22 | 23 | 24 | class CachedBushFactory(BushFactory): 25 | pass 26 | 27 | 28 | class CachedTreeFactory(TreeFactory): 29 | pass 30 | -------------------------------------------------------------------------------- /infinigen/assets/fluid/flip_init.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Karhan Kayan 5 | 6 | import bpy 7 | 8 | bpy.ops.preferences.addon_enable(module="flip_fluids_addon") 9 | bpy.ops.flip_fluid_operators.complete_installation() 10 | -------------------------------------------------------------------------------- /infinigen/assets/fluid/run_tests.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Karhan Kayan 5 | 6 | import pytest 7 | 8 | pytest.main(["fluid/unit_tests.py", "-rP"]) 9 | -------------------------------------------------------------------------------- /infinigen/assets/fonts/Chakra_Petch/ChakraPetch-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Chakra_Petch/ChakraPetch-Bold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Chakra_Petch/ChakraPetch-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Chakra_Petch/ChakraPetch-BoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Chakra_Petch/ChakraPetch-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Chakra_Petch/ChakraPetch-Italic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Chakra_Petch/ChakraPetch-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Chakra_Petch/ChakraPetch-Light.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Chakra_Petch/ChakraPetch-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Chakra_Petch/ChakraPetch-LightItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Chakra_Petch/ChakraPetch-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Chakra_Petch/ChakraPetch-Medium.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Chakra_Petch/ChakraPetch-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Chakra_Petch/ChakraPetch-MediumItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Chakra_Petch/ChakraPetch-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Chakra_Petch/ChakraPetch-Regular.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Chakra_Petch/ChakraPetch-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Chakra_Petch/ChakraPetch-SemiBold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Chakra_Petch/ChakraPetch-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Chakra_Petch/ChakraPetch-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Dancing_Script/DancingScript-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Dancing_Script/DancingScript-VariableFont_wght.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Dancing_Script/static/DancingScript-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Dancing_Script/static/DancingScript-Bold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Dancing_Script/static/DancingScript-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Dancing_Script/static/DancingScript-Medium.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Dancing_Script/static/DancingScript-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Dancing_Script/static/DancingScript-Regular.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Dancing_Script/static/DancingScript-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Dancing_Script/static/DancingScript-SemiBold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Ga_Maamli/GaMaamli-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Ga_Maamli/GaMaamli-Regular.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Maname/Maname-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Maname/Maname-Regular.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Merriweather/Merriweather-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Merriweather/Merriweather-Black.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Merriweather/Merriweather-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Merriweather/Merriweather-BlackItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Merriweather/Merriweather-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Merriweather/Merriweather-Bold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Merriweather/Merriweather-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Merriweather/Merriweather-BoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Merriweather/Merriweather-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Merriweather/Merriweather-Italic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Merriweather/Merriweather-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Merriweather/Merriweather-Light.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Merriweather/Merriweather-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Merriweather/Merriweather-LightItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Merriweather/Merriweather-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Merriweather/Merriweather-Regular.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/Montserrat-Italic-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/Montserrat-Italic-VariableFont_wght.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/Montserrat-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/Montserrat-VariableFont_wght.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-Black.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-BlackItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-BoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-ExtraBold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-ExtraLight.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-Italic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-Light.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-LightItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-Medium.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-MediumItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-SemiBold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-Thin.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Montserrat/static/Montserrat-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Montserrat/static/Montserrat-ThinItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/OpenSans-Italic-VariableFont_wdth,wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/OpenSans-Italic-VariableFont_wdth,wght.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/OpenSans-VariableFont_wdth,wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/OpenSans-VariableFont_wdth,wght.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans-Bold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans-BoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans-ExtraBold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans-Italic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans-Light.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans-LightItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans-Medium.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans-MediumItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans-SemiBold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-Bold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-BoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-ExtraBold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-Italic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-Light.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-LightItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-Medium.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-MediumItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-Regular.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-SemiBold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_Condensed-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-Bold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-BoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-ExtraBold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-Italic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-Light.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-LightItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-Medium.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-MediumItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-Regular.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-SemiBold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Open_Sans/static/OpenSans_SemiCondensed-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Oswald/Oswald-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Oswald/Oswald-VariableFont_wght.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Oswald/static/Oswald-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Oswald/static/Oswald-Bold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Oswald/static/Oswald-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Oswald/static/Oswald-ExtraLight.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Oswald/static/Oswald-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Oswald/static/Oswald-Light.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Oswald/static/Oswald-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Oswald/static/Oswald-Medium.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Oswald/static/Oswald-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Oswald/static/Oswald-Regular.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Oswald/static/Oswald-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Oswald/static/Oswald-SemiBold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Pacifico/Pacifico-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Pacifico/Pacifico-Regular.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Playfair_Display/PlayfairDisplay-Italic-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Playfair_Display/PlayfairDisplay-Italic-VariableFont_wght.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Playfair_Display/PlayfairDisplay-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Playfair_Display/PlayfairDisplay-VariableFont_wght.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-Black.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-BlackItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-Bold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-BoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-ExtraBold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-Italic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-Medium.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-MediumItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-Regular.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-SemiBold.ttf -------------------------------------------------------------------------------- /infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/fonts/Playfair_Display/static/PlayfairDisplay-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /infinigen/assets/lighting/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Hongyu Wen 5 | 6 | from . import sky_lighting 7 | from .caustics_lamp import CausticsLampFactory 8 | from .indoor_lights import PointLampFactory 9 | -------------------------------------------------------------------------------- /infinigen/assets/materials/atmosphere_light_haze.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Alexander Raistrick, Zeyu Ma 5 | 6 | 7 | import gin 8 | 9 | from infinigen.core import surface 10 | from infinigen.core.nodes.node_wrangler import Nodes 11 | from infinigen.core.util import color 12 | from infinigen.core.util.random import random_general as rg 13 | 14 | type = None 15 | 16 | 17 | @gin.configurable 18 | def shader_atmosphere( 19 | nw, enable_scatter=True, density=("uniform", 0, 0.006), anisotropy=0.5, **kwargs 20 | ): 21 | nw.force_input_consistency() 22 | 23 | principled_volume = nw.new_node( 24 | Nodes.PrincipledVolume, 25 | input_kwargs={ 26 | "Color": color.color_category("fog"), 27 | "Density": rg(density), 28 | "Anisotropy": rg(anisotropy), 29 | }, 30 | ) 31 | 32 | return (None, principled_volume) 33 | 34 | 35 | def apply(obj, selection=None, **kwargs): 36 | surface.add_material(obj, shader_atmosphere, selection=selection) 37 | -------------------------------------------------------------------------------- /infinigen/assets/materials/black_plastic.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Hongyu Wen 5 | 6 | from numpy.random import uniform as U 7 | 8 | from infinigen.core.nodes.node_wrangler import Nodes, NodeWrangler 9 | from infinigen.core.util.color import hsv2rgba 10 | 11 | # used in ceiling lights and tv 12 | 13 | 14 | def shader_black(nw: NodeWrangler): 15 | # Code generated using version 2.6.5 of the node_transpiler 16 | 17 | color = hsv2rgba(U(0.45, 0.55), U(0, 0.1), U(0, 1)) 18 | principled_bsdf = nw.new_node( 19 | Nodes.PrincipledBSDF, input_kwargs={"Base Color": color} 20 | ) 21 | 22 | material_output = nw.new_node( 23 | Nodes.MaterialOutput, 24 | input_kwargs={"Surface": principled_bsdf}, 25 | attrs={"is_active_output": True}, 26 | ) 27 | -------------------------------------------------------------------------------- /infinigen/assets/materials/fabrics/__init__.py: -------------------------------------------------------------------------------- 1 | from . import fabric_random 2 | from .coarse_knit_fabric import shader_coarse_knit_fabric 3 | from .fine_knit_fabric import shader_fine_knit_fabric 4 | from .general_fabric import shader_fabric 5 | from .leather import shader_leather 6 | from .lined_fabric import shader_lined_fur_base 7 | from .sofa_fabric import shader_sofa_fabric 8 | -------------------------------------------------------------------------------- /infinigen/assets/materials/fabrics/fabric_random.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | 3 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory 4 | # of this source tree. 5 | 6 | from infinigen.assets.materials import common 7 | from infinigen.assets.utils.uv import unwrap_faces 8 | from infinigen.core.util.random import random_general as rg 9 | 10 | from .coarse_knit_fabric import shader_coarse_knit_fabric 11 | from .fine_knit_fabric import shader_fine_knit_fabric 12 | from .leather import shader_leather 13 | from .sofa_fabric import shader_sofa_fabric 14 | 15 | fabric_shader_list = ( 16 | "weighted_choice", 17 | (1, shader_coarse_knit_fabric), 18 | (1, shader_fine_knit_fabric), 19 | (2, shader_leather), 20 | (1, shader_sofa_fabric), 21 | ) 22 | 23 | 24 | def apply(obj, selection=None, **kwargs): 25 | unwrap_faces(obj, selection) 26 | common.apply(obj, rg(fabric_shader_list), selection=selection, **kwargs) 27 | -------------------------------------------------------------------------------- /infinigen/assets/materials/marble.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | from infinigen.assets.materials import common 6 | from infinigen.assets.materials.table_materials import shader_marble 7 | 8 | 9 | def apply(obj, selection=None, **kwargs): 10 | common.apply(obj, shader_marble, selection, **kwargs) 11 | -------------------------------------------------------------------------------- /infinigen/assets/materials/mirror.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | from infinigen.assets.materials import common 6 | from infinigen.core.nodes import Nodes, NodeWrangler 7 | 8 | 9 | def shader_mirror(nw: NodeWrangler, **kwargs): 10 | glossy_bsdf = nw.new_node( 11 | "ShaderNodeBsdfGlossy", 12 | input_kwargs={ 13 | "Color": (1.0, 1.0, 1.0, 1.0), 14 | "Roughness": 0, 15 | }, 16 | ) 17 | 18 | nw.new_node(Nodes.MaterialOutput, input_kwargs={"Surface": glossy_bsdf}) 19 | 20 | 21 | def apply(obj, selection=None, **kwargs): 22 | common.apply(obj, shader_mirror, selection, **kwargs) 23 | -------------------------------------------------------------------------------- /infinigen/assets/materials/plastic.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the GPL license found in the LICENSE file in the root directory of this 3 | # source tree. 4 | 5 | # Authors: Mingzhe Wang, Lingjie Mei 6 | 7 | 8 | from numpy.random import uniform 9 | 10 | from infinigen.assets.materials import common 11 | from infinigen.assets.materials.plastics.plastic_rough import shader_rough_plastic 12 | from infinigen.assets.materials.plastics.plastic_translucent import ( 13 | shader_translucent_plastic, 14 | ) 15 | 16 | 17 | def apply(obj, selection=None, clear=None, **kwargs): 18 | is_rough = kwargs.get("rough", uniform(0, 1)) 19 | is_translucent = kwargs.get("translucent", uniform(0, 1)) 20 | if clear is None: 21 | clear = uniform() < 0.2 22 | shader_func = ( 23 | shader_rough_plastic 24 | if is_rough > is_translucent 25 | else shader_translucent_plastic 26 | ) 27 | common.apply(obj, shader_func, selection, clear=clear, **kwargs) 28 | -------------------------------------------------------------------------------- /infinigen/assets/materials/smoke_material.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Karhan Kayan 5 | 6 | import numpy as np 7 | 8 | from infinigen.core import surface 9 | from infinigen.core.nodes.node_wrangler import Nodes 10 | from infinigen.core.util.random import random_color_neighbour 11 | 12 | 13 | def smoke_material(nw): 14 | # Code generated using version 2.3.2 of the node_transpiler 15 | 16 | principled_volume = nw.new_node( 17 | Nodes.PrincipledVolume, 18 | input_kwargs={ 19 | "Color": random_color_neighbour((0.3803, 0.3803, 0.3803, 1.0)), 20 | "Density": np.random.uniform(1.0, 5.0), 21 | }, 22 | ) 23 | 24 | material_output = nw.new_node( 25 | Nodes.MaterialOutput, input_kwargs={"Volume": principled_volume} 26 | ) 27 | 28 | 29 | def apply(obj, selection=None, **kwargs): 30 | surface.add_material(obj, smoke_material, selection=selection) 31 | -------------------------------------------------------------------------------- /infinigen/assets/materials/text_no_barcode.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | import numpy as np 6 | 7 | from .text import Text 8 | 9 | 10 | def apply(obj, selection=None, bbox=(0, 1, 0, 1), emission=0, **kwargs): 11 | Text(np.random.randint(1e5), False, emission).apply(obj, selection, bbox, **kwargs) 12 | -------------------------------------------------------------------------------- /infinigen/assets/materials/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/materials/utils/__init__.py -------------------------------------------------------------------------------- /infinigen/assets/materials/woods/composite_wood_tile.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | 6 | from infinigen.assets.materials import tile 7 | 8 | from .wood import shader_wood 9 | 10 | 11 | def apply( 12 | obj, 13 | selection=None, 14 | vertical=False, 15 | scale=None, 16 | alternating=None, 17 | shape=None, 18 | **kwargs, 19 | ): 20 | shader_func = shader_wood 21 | tile.apply( 22 | obj, selection, vertical, shader_func, scale, alternating, "composite", **kwargs 23 | ) 24 | -------------------------------------------------------------------------------- /infinigen/assets/materials/woods/crossed_wood_tile.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | 5 | # Authors: Lingjie Mei 6 | from infinigen.assets.materials import tile 7 | 8 | from .wood import shader_wood 9 | 10 | 11 | def apply( 12 | obj, 13 | selection=None, 14 | vertical=False, 15 | scale=None, 16 | alternating=None, 17 | shape=None, 18 | **kwargs, 19 | ): 20 | shader_func = shader_wood 21 | tile.apply(obj, selection, vertical, shader_func, scale, False, "crossed", **kwargs) 22 | 23 | 24 | # def make_sphere():e 25 | -------------------------------------------------------------------------------- /infinigen/assets/materials/woods/hexagon_wood_tile.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | 5 | # Authors: Lingjie Mei 6 | from infinigen.assets.materials import tile 7 | 8 | from .wood import shader_wood 9 | 10 | 11 | def apply( 12 | obj, 13 | selection=None, 14 | vertical=False, 15 | scale=None, 16 | alternating=None, 17 | shape=None, 18 | **kwargs, 19 | ): 20 | shader_func = shader_wood 21 | tile.apply( 22 | obj, selection, vertical, shader_func, scale, alternating, "hexagon", **kwargs 23 | ) 24 | -------------------------------------------------------------------------------- /infinigen/assets/materials/woods/non_wood_tile.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | import numpy as np 6 | 7 | 8 | def apply( 9 | obj, 10 | selection=None, 11 | vertical=False, 12 | shader_func=None, 13 | scale=None, 14 | alternating=None, 15 | shape=None, 16 | **kwargs, 17 | ): 18 | from infinigen.assets.materials import tile 19 | 20 | from .wood import shader_wood 21 | 22 | shader_funcs = tile.get_shader_funcs() 23 | shader_funcs = [(f, w) for f, w in shader_funcs if f != shader_wood] 24 | funcs, weights = zip(*shader_funcs) 25 | weights = np.array(weights) / sum(weights) 26 | if shader_func is None: 27 | shader_func = np.random.choice(funcs, p=weights) 28 | if shape is None: 29 | shape = np.random.choice(["square", "hexagon", "rectangle"]) 30 | tile.apply( 31 | obj, selection, vertical, shader_func, scale, alternating, shape, **kwargs 32 | ) 33 | -------------------------------------------------------------------------------- /infinigen/assets/materials/woods/square_wood_tile.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | 5 | # Authors: Lingjie Mei 6 | from infinigen.assets.materials import tile 7 | 8 | from .wood import shader_wood 9 | 10 | 11 | def apply( 12 | obj, 13 | selection=None, 14 | vertical=False, 15 | scale=None, 16 | alternating=None, 17 | shape=None, 18 | **kwargs, 19 | ): 20 | shader_func = shader_wood 21 | tile.apply( 22 | obj, selection, vertical, shader_func, scale, alternating, "square", **kwargs 23 | ) 24 | 25 | 26 | # def make_sphere():e 27 | -------------------------------------------------------------------------------- /infinigen/assets/materials/woods/staggered_wood_tile.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | 5 | # Authors: Lingjie Mei 6 | from infinigen.assets.materials import tile 7 | 8 | from .wood import shader_wood 9 | 10 | 11 | def apply( 12 | obj, 13 | selection=None, 14 | vertical=False, 15 | scale=None, 16 | alternating=None, 17 | shape=None, 18 | **kwargs, 19 | ): 20 | shader_func = shader_wood 21 | tile.apply( 22 | obj, selection, vertical, shader_func, scale, alternating, "staggered", **kwargs 23 | ) 24 | -------------------------------------------------------------------------------- /infinigen/assets/materials/woods/wood_tile.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | import numpy as np 6 | 7 | 8 | def get_wood_tiles(): 9 | from . import ( 10 | composite_wood_tile, 11 | crossed_wood_tile, 12 | hexagon_wood_tile, 13 | square_wood_tile, 14 | staggered_wood_tile, 15 | ) 16 | 17 | return [ 18 | square_wood_tile, 19 | staggered_wood_tile, 20 | crossed_wood_tile, 21 | composite_wood_tile, 22 | hexagon_wood_tile, 23 | ] 24 | 25 | 26 | def apply(obj, selection=None, vertical=False, scale=None, alternating=None, **kwargs): 27 | func = np.random.choice(get_wood_tiles()) 28 | func.apply(obj, selection, vertical, scale, alternating, **kwargs) 29 | -------------------------------------------------------------------------------- /infinigen/assets/objects/appliances/__init__.py: -------------------------------------------------------------------------------- 1 | from .beverage_fridge import BeverageFridgeFactory 2 | from .dishwasher import DishwasherFactory 3 | from .microwave import MicrowaveFactory 4 | from .oven import OvenFactory 5 | from .tv import MonitorFactory, TVFactory 6 | -------------------------------------------------------------------------------- /infinigen/assets/objects/bathroom/__init__.py: -------------------------------------------------------------------------------- 1 | from .bathroom_sink import BathroomSinkFactory, StandingSinkFactory 2 | from .bathtub import BathtubFactory 3 | from .hardware import HardwareFactory 4 | from .toilet import ToiletFactory 5 | -------------------------------------------------------------------------------- /infinigen/assets/objects/cactus/__init__.py: -------------------------------------------------------------------------------- 1 | from .columnar import ColumnarBaseCactusFactory 2 | from .generate import ( 3 | CactusFactory, 4 | ColumnarCactusFactory, 5 | GlobularCactusFactory, 6 | KalidiumCactusFactory, 7 | PrickyPearCactusFactory, 8 | ) 9 | from .globular import GlobularBaseCactusFactory 10 | from .kalidium import KalidiumBaseCactusFactory 11 | from .pricky_pear import PrickyPearBaseCactusFactory 12 | -------------------------------------------------------------------------------- /infinigen/assets/objects/cactus/base.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | 6 | 7 | import bpy 8 | 9 | from infinigen.assets.objects.cactus.spike import make_default_selections 10 | from infinigen.core.placement.factory import AssetFactory 11 | 12 | 13 | class BaseCactusFactory(AssetFactory): 14 | spike_distance = 0.025 15 | cap_percentage = 0.1 16 | noise_strength = 0.02 17 | base_radius = 0.002 18 | density = 5e4 19 | 20 | def __init__(self, factory_seed, coarse=False): 21 | super(BaseCactusFactory, self).__init__(factory_seed, coarse) 22 | self.points_fn = make_default_selections( 23 | self.spike_distance, self.cap_percentage, self.density 24 | ) 25 | 26 | def create_asset(self, **params) -> bpy.types.Object: 27 | raise NotImplementedError() 28 | -------------------------------------------------------------------------------- /infinigen/assets/objects/clothes/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | from .blanket import BlanketFactory 6 | from .pants import PantsFactory 7 | from .shirt import ShirtFactory 8 | from .towel import TowelFactory 9 | -------------------------------------------------------------------------------- /infinigen/assets/objects/cloud/__init__.py: -------------------------------------------------------------------------------- 1 | from .generate import ( 2 | AltocumulusFactory, 3 | CloudFactory, 4 | CumulonimbusFactory, 5 | CumulusFactory, 6 | StratocumulusFactory, 7 | ) 8 | -------------------------------------------------------------------------------- /infinigen/assets/objects/corals/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | 6 | 7 | from .diff_growth import ( 8 | DiffGrowthBaseCoralFactory, 9 | LeatherBaseCoralFactory, 10 | TableBaseCoralFactory, 11 | ) 12 | from .elkhorn import ElkhornBaseCoralFactory 13 | from .fan import FanBaseCoralFactory 14 | from .generate import ( 15 | BrainCoralFactory, 16 | BushCoralFactory, 17 | CauliflowerCoralFactory, 18 | CoralFactory, 19 | ElkhornCoralFactory, 20 | FanCoralFactory, 21 | HoneycombCoralFactory, 22 | LeatherCoralFactory, 23 | StarCoralFactory, 24 | TableCoralFactory, 25 | TubeCoralFactory, 26 | TwigCoralFactory, 27 | ) 28 | from .laplacian import CauliflowerBaseCoralFactory 29 | from .reaction_diffusion import ( 30 | BrainBaseCoralFactory, 31 | HoneycombBaseCoralFactory, 32 | ReactionDiffusionBaseCoralFactory, 33 | ) 34 | from .star import StarBaseCoralFactory 35 | from .tree import BushBaseCoralFactory, TreeBaseCoralFactory, TwigBaseCoralFactory 36 | from .tube import TubeBaseCoralFactory 37 | -------------------------------------------------------------------------------- /infinigen/assets/objects/corals/base.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | 6 | 7 | import bpy 8 | 9 | from infinigen.core.placement.factory import AssetFactory 10 | 11 | 12 | class BaseCoralFactory(AssetFactory): 13 | tentacle_distance = 0.05 14 | default_scale = [0.8] * 3 15 | noise_strength = 0.02 16 | tentacle_prob = 0.5 17 | bump_prob = 0.3 18 | density = 500 19 | 20 | def __init__(self, factory_seed, coarse=False): 21 | super(BaseCoralFactory, self).__init__(factory_seed, coarse) 22 | self.points_fn = lambda nw, points: points 23 | 24 | def create_asset(self, **params) -> bpy.types.Object: 25 | raise NotImplementedError 26 | -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/__init__.py: -------------------------------------------------------------------------------- 1 | from .beetle import AntSwarmFactory, BeetleFactory 2 | from .bird import BirdFactory, FlyingBirdFactory 3 | from .carnivore import CarnivoreFactory 4 | from .crustacean import ( 5 | CrabFactory, 6 | CrustaceanFactory, 7 | LobsterFactory, 8 | SpinyLobsterFactory, 9 | ) 10 | from .fish import FishFactory, FishSchoolFactory 11 | from .herbivore import HerbivoreFactory 12 | from .insects.dragonfly import DragonflyFactory 13 | from .jellyfish import JellyfishFactory 14 | from .reptile import FrogFactory, LizardFactory, SnakeFactory 15 | -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/insects/__init__.py: -------------------------------------------------------------------------------- 1 | from .dragonfly import DragonflyFactory 2 | -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/__init__.py: -------------------------------------------------------------------------------- 1 | from . import ( 2 | beak, 3 | body, 4 | chameleon, 5 | eye, 6 | fin_old, 7 | foot, 8 | generic_nurbs, 9 | head, 10 | head_detail, 11 | hoof, 12 | horn, 13 | leg, 14 | reptile_detail, 15 | ridged_fin, 16 | tail, 17 | wings, 18 | ) 19 | -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/crustacean/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/crustacean/__init__.py -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_bird_duck.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_bird_duck.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_bird_gull.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_bird_gull.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_bird_robin.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_bird_robin.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_feline_cheetah.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_feline_cheetah.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_feline_housecat.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_feline_housecat.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_feline_tiger.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_feline_tiger.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_feline_tiger_2.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_feline_tiger_2.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_feline_wolf.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_feline_wolf.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_fish_bluefish.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_fish_bluefish.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_fish_crappie.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_fish_crappie.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_fish_eel.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_fish_eel.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_fish_pickerel.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_fish_pickerel.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_fish_pufferfish.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_fish_pufferfish.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_fish_spadefish.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_fish_spadefish.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_herbivore_cow.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_herbivore_cow.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_herbivore_giraffe.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_herbivore_giraffe.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_herbivore_goat.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_herbivore_goat.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_herbivore_llama.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_herbivore_llama.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_insect_bee.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_insect_bee.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_insect_beetle.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_insect_beetle.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_insect_tarantula.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_insect_tarantula.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/body_llama.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/body_llama.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/head_carnivore_tiger.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/head_carnivore_tiger.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/head_carnivore_wolf.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/head_carnivore_wolf.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/head_herbivore_cow.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/head_herbivore_cow.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/head_herbivore_giraffe.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/head_herbivore_giraffe.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/head_herbivore_goat.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/head_herbivore_goat.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/head_herbivore_llama.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/head_herbivore_llama.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/head_insect_beetle.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/head_insect_beetle.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/parts/nurbs_data/head_insect_wasp.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/parts/nurbs_data/head_insect_wasp.npy -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/util/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/util/__init__.py -------------------------------------------------------------------------------- /infinigen/assets/objects/creatures/util/animation/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/objects/creatures/util/animation/__init__.py -------------------------------------------------------------------------------- /infinigen/assets/objects/decor/__init__.py: -------------------------------------------------------------------------------- 1 | from .aquarium_tank import AquariumTankFactory 2 | -------------------------------------------------------------------------------- /infinigen/assets/objects/deformed_trees/__init__.py: -------------------------------------------------------------------------------- 1 | from .fallen import FallenTreeFactory 2 | from .generate import DeformedTreeFactory 3 | from .hollow import HollowTreeFactory 4 | from .rotten import RottenTreeFactory 5 | from .truncated import TruncatedTreeFactory 6 | -------------------------------------------------------------------------------- /infinigen/assets/objects/elements/__init__.py: -------------------------------------------------------------------------------- 1 | from .doors import ( 2 | DoorCasingFactory, 3 | GlassPanelDoorFactory, 4 | LiteDoorFactory, 5 | LouverDoorFactory, 6 | PanelDoorFactory, 7 | random_door_factory, 8 | ) 9 | from .nature_shelf_trinkets.generate import NatureShelfTrinketsFactory 10 | from .pillars import PillarFactory 11 | from .rug import RugFactory 12 | from .staircases import ( 13 | CantileverStaircaseFactory, 14 | CurvedStaircaseFactory, 15 | LShapedStaircaseFactory, 16 | SpiralStaircaseFactory, 17 | StraightStaircaseFactory, 18 | UShapedStaircaseFactory, 19 | random_staircase_factory, 20 | ) 21 | from .warehouses import ( 22 | PalletFactory, 23 | RackFactory, 24 | ) 25 | -------------------------------------------------------------------------------- /infinigen/assets/objects/elements/staircases/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | import numpy as np 6 | 7 | from .cantilever import CantileverStaircaseFactory 8 | from .curved import CurvedStaircaseFactory 9 | from .l_shaped import LShapedStaircaseFactory 10 | from .spiral import SpiralStaircaseFactory 11 | from .straight import StraightStaircaseFactory 12 | from .u_shaped import UShapedStaircaseFactory 13 | 14 | 15 | def random_staircase_factory(): 16 | door_factories = [ 17 | StraightStaircaseFactory, 18 | LShapedStaircaseFactory, 19 | UShapedStaircaseFactory, 20 | SpiralStaircaseFactory, 21 | CurvedStaircaseFactory, 22 | CantileverStaircaseFactory, 23 | ] 24 | door_probs = np.array([2, 2, 2, 0.5, 2, 2]) 25 | return np.random.choice(door_factories, p=door_probs / door_probs.sum()) 26 | -------------------------------------------------------------------------------- /infinigen/assets/objects/elements/warehouses/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | 6 | from .pallet import PalletFactory 7 | from .rack import RackFactory 8 | -------------------------------------------------------------------------------- /infinigen/assets/objects/fruits/__init__.py: -------------------------------------------------------------------------------- 1 | from .apple import FruitFactoryApple 2 | from .blackberry import FruitFactoryBlackberry 3 | from .coconutgreen import FruitFactoryCoconutgreen 4 | from .coconuthairy import FruitFactoryCoconuthairy 5 | from .compositional_fruit import FruitFactoryCompositional 6 | from .durian import FruitFactoryDurian 7 | from .pineapple import FruitFactoryPineapple 8 | from .starfruit import FruitFactoryStarfruit 9 | from .strawberry import FruitFactoryStrawberry 10 | -------------------------------------------------------------------------------- /infinigen/assets/objects/grassland/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Beining Han 5 | 6 | 7 | from .dandelion import DandelionFactory, DandelionSeedFactory 8 | from .flower import FlowerFactory 9 | from .flowerplant import FlowerPlantFactory 10 | from .grass_tuft import GrassTuftFactory 11 | -------------------------------------------------------------------------------- /infinigen/assets/objects/lamp/__init__.py: -------------------------------------------------------------------------------- 1 | from .ceiling_classic_lamp import CeilingClassicLampFactory 2 | from .ceiling_lights import CeilingLightFactory 3 | from .lamp import DeskLampFactory, FloorLampFactory, LampFactory 4 | -------------------------------------------------------------------------------- /infinigen/assets/objects/leaves/__init__.py: -------------------------------------------------------------------------------- 1 | from .leaf import LeafFactory 2 | from .leaf_broadleaf import LeafFactoryBroadleaf 3 | from .leaf_ginko import LeafFactoryGinko 4 | from .leaf_maple import LeafFactoryMaple 5 | from .leaf_pine import LeafFactoryPine 6 | from .leaf_v2 import LeafFactoryV2 7 | from .leaf_wrapped import LeafFactoryWrapped 8 | -------------------------------------------------------------------------------- /infinigen/assets/objects/mollusk/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | 6 | 7 | from .generate import ( 8 | AugerFactory, 9 | ClamFactory, 10 | ConchFactory, 11 | MolluskFactory, 12 | MusselFactory, 13 | NautilusFactory, 14 | ScallopFactory, 15 | VoluteFactory, 16 | ) 17 | from .shell import ( 18 | ClamBaseFactory, 19 | MusselBaseFactory, 20 | ScallopBaseFactory, 21 | ShellBaseFactory, 22 | ) 23 | from .snail import ( 24 | AugerBaseFactory, 25 | ConchBaseFactory, 26 | NautilusBaseFactory, 27 | SnailBaseFactory, 28 | VoluteBaseFactory, 29 | ) 30 | -------------------------------------------------------------------------------- /infinigen/assets/objects/mollusk/base.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | 6 | 7 | import bpy 8 | 9 | from infinigen.core.placement.factory import AssetFactory 10 | 11 | 12 | class BaseMolluskFactory(AssetFactory): 13 | max_expected_radius = 0.5 14 | noise_strength = 0.02 15 | ratio = 1 16 | x_scale = 2 17 | z_scale = 1 18 | distortion = 1 19 | 20 | def __init__(self, factory_seed, coarse=False): 21 | super(BaseMolluskFactory, self).__init__(factory_seed, coarse) 22 | 23 | def create_asset(self, **params) -> bpy.types.Object: 24 | raise NotImplementedError 25 | -------------------------------------------------------------------------------- /infinigen/assets/objects/monocot/__init__.py: -------------------------------------------------------------------------------- 1 | from .agave import AgaveMonocotFactory 2 | from .banana import BananaMonocotFactory, TaroMonocotFactory 3 | from .generate import MonocotFactory 4 | from .grasses import ( 5 | GrassesMonocotFactory, 6 | MaizeMonocotFactory, 7 | WheatEarMonocotFactory, 8 | WheatMonocotFactory, 9 | ) 10 | from .kelp import KelpMonocotFactory 11 | from .pinecone import PineconeFactory 12 | from .tussock import TussockMonocotFactory 13 | from .veratrum import VeratrumMonocotFactory 14 | -------------------------------------------------------------------------------- /infinigen/assets/objects/mushroom/__init__.py: -------------------------------------------------------------------------------- 1 | from .generate import MushroomFactory 2 | from .growth import MushroomGrowthFactory 3 | -------------------------------------------------------------------------------- /infinigen/assets/objects/organizer/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Beining Han 5 | 6 | 7 | from .basket import BasketBaseFactory 8 | from .hook import HookBaseFactory, SpatulaOnHookBaseFactory 9 | from .plate_rack import PlateOnRackBaseFactory, PlateRackBaseFactory 10 | -------------------------------------------------------------------------------- /infinigen/assets/objects/particles/__init__.py: -------------------------------------------------------------------------------- 1 | from .lichen import LichenFactory 2 | from .moss import MossFactory 3 | from .particles import DustMoteFactory, RaindropFactory, SnowflakeFactory 4 | from .pine_needle import PineNeedleFactory 5 | -------------------------------------------------------------------------------- /infinigen/assets/objects/rocks/__init__.py: -------------------------------------------------------------------------------- 1 | from .blender_rock import BlenderRockFactory 2 | from .boulder import BoulderFactory 3 | from .glowing_rocks import GlowingRocksFactory 4 | -------------------------------------------------------------------------------- /infinigen/assets/objects/seating/__init__.py: -------------------------------------------------------------------------------- 1 | from .bed import BedFactory 2 | from .bedframe import BedFrameFactory 3 | from .chairs import ( 4 | BarChairFactory, 5 | ChairFactory, 6 | OfficeChairFactory, 7 | ) 8 | from .mattress import MattressFactory 9 | from .pillow import PillowFactory 10 | from .sofa import ArmChairFactory, SofaFactory 11 | -------------------------------------------------------------------------------- /infinigen/assets/objects/seating/chairs/__init__.py: -------------------------------------------------------------------------------- 1 | from .bar_chair import BarChairFactory 2 | from .chair import ChairFactory 3 | from .office_chair import OfficeChairFactory 4 | -------------------------------------------------------------------------------- /infinigen/assets/objects/shelves/__init__.py: -------------------------------------------------------------------------------- 1 | from .cell_shelf import CellShelfFactory, TVStandFactory 2 | from .countertop import CountertopFactory 3 | from .doors import CabinetDoorBaseFactory 4 | from .kitchen_cabinet import KitchenCabinetFactory 5 | from .kitchen_space import KitchenIslandFactory, KitchenSpaceFactory 6 | from .large_shelf import LargeShelfFactory 7 | from .simple_bookcase import SimpleBookcaseFactory 8 | from .simple_desk import SidetableDeskFactory, SimpleDeskFactory 9 | from .single_cabinet import SingleCabinetFactory 10 | from .triangle_shelf import TriangleShelfFactory 11 | -------------------------------------------------------------------------------- /infinigen/assets/objects/small_plants/__init__.py: -------------------------------------------------------------------------------- 1 | from .fern import FernFactory 2 | from .snake_plant import SnakePlantFactory 3 | from .spider_plant import SpiderPlantFactory 4 | from .succulent import SucculentFactory 5 | -------------------------------------------------------------------------------- /infinigen/assets/objects/table_decorations/__init__.py: -------------------------------------------------------------------------------- 1 | from .book import BookColumnFactory, BookFactory, BookStackFactory 2 | from .sink import SinkFactory, TapFactory 3 | from .vase import VaseFactory 4 | -------------------------------------------------------------------------------- /infinigen/assets/objects/tables/__init__.py: -------------------------------------------------------------------------------- 1 | from .cocktail_table import TableCocktailFactory 2 | from .dining_table import CoffeeTableFactory, SideTableFactory, TableDiningFactory 3 | from .table_top import TableTopFactory 4 | -------------------------------------------------------------------------------- /infinigen/assets/objects/tableware/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | 6 | from .bottle import BottleFactory 7 | from .bowl import BowlFactory 8 | from .can import CanFactory 9 | from .chopsticks import ChopsticksFactory 10 | from .cup import CupFactory 11 | from .food_bag import FoodBagFactory 12 | from .food_box import FoodBoxFactory 13 | from .fork import ForkFactory, SpatulaFactory 14 | from .fruit_container import FruitContainerFactory 15 | from .jar import JarFactory 16 | from .knife import KnifeFactory 17 | from .lid import LidFactory 18 | from .pan import PanFactory 19 | from .plant_container import LargePlantContainerFactory, PlantContainerFactory 20 | from .plate import PlateFactory 21 | from .pot import PotFactory 22 | from .spoon import SpoonFactory 23 | from .wineglass import WineglassFactory 24 | -------------------------------------------------------------------------------- /infinigen/assets/objects/trees/.gitignore: -------------------------------------------------------------------------------- 1 | *.blend 2 | -------------------------------------------------------------------------------- /infinigen/assets/objects/trees/__init__.py: -------------------------------------------------------------------------------- 1 | from .generate import BushFactory, TreeFactory, random_leaf_collection, random_season 2 | from .tree_flower import TreeFlowerFactory 3 | -------------------------------------------------------------------------------- /infinigen/assets/objects/tropic_plants/__init__.py: -------------------------------------------------------------------------------- 1 | from .coconut_tree import CoconutTreeFactory 2 | from .leaf_banana_tree import LeafBananaTreeFactory, PlantBananaTreeFactory 3 | from .leaf_palm_plant import LeafPalmPlantFactory 4 | from .leaf_palm_tree import LeafPalmTreeFactory 5 | from .palm_tree import PalmTreeFactory 6 | -------------------------------------------------------------------------------- /infinigen/assets/objects/underwater/__init__.py: -------------------------------------------------------------------------------- 1 | from .seaweed import SeaweedFactory 2 | from .urchin import UrchinFactory 3 | -------------------------------------------------------------------------------- /infinigen/assets/objects/wall_decorations/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | from .balloon import BalloonFactory 6 | from .range_hood import RangeHoodFactory 7 | from .wall_art import MirrorFactory, WallArtFactory 8 | from .wall_shelf import WallShelfFactory 9 | -------------------------------------------------------------------------------- /infinigen/assets/objects/windows/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Hongyu Wen 5 | 6 | from .window import WindowFactory 7 | -------------------------------------------------------------------------------- /infinigen/assets/scatters/__init__.py: -------------------------------------------------------------------------------- 1 | from .lichen import LichenFactory 2 | from .moss import MossFactory 3 | -------------------------------------------------------------------------------- /infinigen/assets/scatters/fern.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Beining Han 5 | 6 | 7 | import numpy as np 8 | 9 | from infinigen.assets.objects.small_plants.fern import FernFactory 10 | from infinigen.assets.scatters.utils.wind import wind 11 | from infinigen.core.placement.factory import make_asset_collection 12 | from infinigen.core.placement.instance_scatter import scatter_instances 13 | from infinigen.core.util.random import random_general as rg 14 | 15 | 16 | def apply(obj, selection=None, density=("uniform", 1, 6), **kwargs): 17 | fern_col = make_asset_collection( 18 | FernFactory(np.random.randint(1e5)), n=2, verbose=True 19 | ) 20 | scatter_obj = scatter_instances( 21 | base_obj=obj, 22 | collection=fern_col, 23 | scale=0.7, 24 | scale_rand=0.7, 25 | scale_rand_axi=0.3, 26 | vol_density=rg(density), 27 | normal_fac=0.3, 28 | rotation_offset=wind(strength=10), 29 | selection=selection, 30 | ) 31 | return scatter_obj, fern_col 32 | -------------------------------------------------------------------------------- /infinigen/assets/scatters/ground_leaves.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Alexander Raistrick 5 | 6 | 7 | from numpy.random import uniform as U 8 | 9 | from infinigen.assets.objects.trees.generate import random_leaf_collection 10 | from infinigen.core.placement.instance_scatter import scatter_instances 11 | 12 | 13 | def apply(obj, selection=None, density=70, season=None, **kwargs): 14 | leaf_col = random_leaf_collection(season=season) 15 | return scatter_instances( 16 | base_obj=obj, 17 | collection=leaf_col, 18 | scale=0.3, 19 | scale_rand=U(0, 0.9), 20 | density=density, 21 | ground_offset=0.05, 22 | selection=selection, 23 | taper_density=True, 24 | ) 25 | -------------------------------------------------------------------------------- /infinigen/assets/scatters/snow_layer.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Zeyu Ma 5 | 6 | 7 | import bpy 8 | 9 | from infinigen.core.init import require_blender_addon 10 | from infinigen.core.tagging import tag_object 11 | from infinigen.core.util import blender as butil 12 | 13 | require_blender_addon("real_snow", fail="warn") 14 | 15 | 16 | class Snowlayer: 17 | def apply(self, obj, **kwargs): 18 | require_blender_addon("real_snow") 19 | 20 | bpy.context.scene.snow.height = 0.1 21 | with butil.SelectObjects(obj): 22 | bpy.ops.snow.create() 23 | snow = bpy.context.active_object 24 | tag_object(snow, "snow") 25 | tag_object(snow, "boulder") 26 | 27 | 28 | def apply(obj, selection=None, **kwargs): 29 | snowlayer = Snowlayer() 30 | snowlayer.apply(obj) 31 | return snowlayer 32 | -------------------------------------------------------------------------------- /infinigen/assets/scatters/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/scatters/utils/__init__.py -------------------------------------------------------------------------------- /infinigen/assets/static_assets/__init__.py: -------------------------------------------------------------------------------- 1 | from .base import StaticAssetFactory 2 | from .static_category import ( 3 | StaticShelfFactory, 4 | StaticSofaFactory, 5 | StaticTableFactory, 6 | static_category_factory, 7 | ) 8 | -------------------------------------------------------------------------------- /infinigen/assets/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | -------------------------------------------------------------------------------- /infinigen/assets/utils/geometry/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/utils/geometry/__init__.py -------------------------------------------------------------------------------- /infinigen/assets/utils/geometry/cpp_utils/.gitignore: -------------------------------------------------------------------------------- 1 | bnurbs.c* 2 | build 3 | -------------------------------------------------------------------------------- /infinigen/assets/utils/geometry/cpp_utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/assets/utils/geometry/cpp_utils/__init__.py -------------------------------------------------------------------------------- /infinigen/assets/utils/nodegroups/__init__.py: -------------------------------------------------------------------------------- 1 | from . import attach, curve, geometry 2 | -------------------------------------------------------------------------------- /infinigen/assets/weather/__init__.py: -------------------------------------------------------------------------------- 1 | from .kole_clouds import add_kole_clouds 2 | from .particles import ( 3 | FallingParticles, 4 | falling_leaf_param_distribution, 5 | floating_dust_param_distribution, 6 | marine_snow_param_distribution, 7 | rain_param_distribution, 8 | snow_param_distribution, 9 | spawn_emitter, 10 | ) 11 | from .wind_effectors import TurbulenceEffector, WindEffector 12 | -------------------------------------------------------------------------------- /infinigen/core/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/core/__init__.py -------------------------------------------------------------------------------- /infinigen/core/constraints/evaluator/__init__.py: -------------------------------------------------------------------------------- 1 | from .eval_memo import evict_memo_for_move, evict_memo_for_obj, memo_key 2 | from .evaluate import EvalResult, evaluate_node, evaluate_problem, viol_count 3 | -------------------------------------------------------------------------------- /infinigen/core/constraints/evaluator/node_impl/__init__.py: -------------------------------------------------------------------------------- 1 | from . import rooms 2 | from .impl_bindings import node_impls 3 | -------------------------------------------------------------------------------- /infinigen/core/constraints/example_solver/__init__.py: -------------------------------------------------------------------------------- 1 | from . import room 2 | from .state_def import State 3 | -------------------------------------------------------------------------------- /infinigen/core/constraints/example_solver/greedy/__init__.py: -------------------------------------------------------------------------------- 1 | from .active_for_stage import set_active, update_active_flags 2 | from .all_substitutions import iterate_assignments, substitutions 3 | from .constraint_partition import filter_constraints 4 | -------------------------------------------------------------------------------- /infinigen/core/constraints/example_solver/moves/__init__.py: -------------------------------------------------------------------------------- 1 | from .addition import Addition, Resample 2 | from .deletion import Deletion 3 | from .moves import Move 4 | from .pose import ReinitPoseMove, RotateMove, TranslateMove 5 | from .reassignment import RelationPlaneChange, RelationTargetChange 6 | from .swap import Swap 7 | -------------------------------------------------------------------------------- /infinigen/core/constraints/example_solver/moves/moves.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory 3 | # of this source tree. 4 | 5 | # Authors: Alexander Raistrick 6 | 7 | import logging 8 | import typing 9 | from dataclasses import dataclass 10 | 11 | from infinigen.core.constraints.example_solver import state_def 12 | 13 | logger = logging.getLogger(__name__) 14 | 15 | 16 | @dataclass 17 | class Move: 18 | names: typing.List[str] 19 | 20 | def __post_init__(self): 21 | assert isinstance(self.names, list) 22 | 23 | def apply(self, state: state_def.State): 24 | raise NotImplementedError 25 | 26 | def revert(self, state: state_def.State): 27 | raise NotImplementedError 28 | 29 | def accept(self, state: state_def.State): 30 | pass 31 | -------------------------------------------------------------------------------- /infinigen/core/constraints/example_solver/room/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lingjie Mei 5 | from .graph import GraphMaker 6 | -------------------------------------------------------------------------------- /infinigen/core/constraints/reasoning/__init__.py: -------------------------------------------------------------------------------- 1 | from .constraint_bounding import Bound, constraint_bounds 2 | from .constraint_constancy import is_constant 3 | from .constraint_domain import Domain, FilterByDomain, constraint_domain 4 | from .domain import ( 5 | domain_finalized, 6 | reldom_compatible, 7 | reldom_implies, 8 | reldom_intersection, 9 | reldom_intersects, 10 | reldom_satisfies, 11 | ) 12 | from .domain_substitute import domain_tag_substitute, substitute_all 13 | from .expr_equal import expr_equal 14 | -------------------------------------------------------------------------------- /infinigen/core/constraints/reasoning/constraint_constancy.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory 3 | # of this source tree. 4 | 5 | # Authors: Alexander Raistrick 6 | 7 | 8 | from infinigen.core.constraints import constraint_language as cl 9 | 10 | 11 | def is_constant(node: cl.Node): 12 | match node: 13 | case cl.constant(): 14 | return True 15 | case cl.BoolOperatorExpression(_, vs) | cl.ScalarOperatorExpression(_, vs): 16 | return all(is_constant(x) for x in vs) 17 | case _: 18 | return False 19 | -------------------------------------------------------------------------------- /infinigen/core/nodes/__init__.py: -------------------------------------------------------------------------------- 1 | from .node_info import Nodes 2 | from .node_wrangler import NodeWrangler 3 | -------------------------------------------------------------------------------- /infinigen/core/nodes/node_transpiler/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/core/nodes/node_transpiler/__init__.py -------------------------------------------------------------------------------- /infinigen/core/nodes/node_transpiler/changelog.md: -------------------------------------------------------------------------------- 1 | 2.0.0 - Add support for geometry node groups 2 | 2.1.0 - Add support for node groups in shader nodes 3 | 2.2.0 - Use labels as varname hints, transpile labels, prevent varname clashes with python keywords, use math ops as name hints 4 | 2.3.0 - Add support for automatic randomization based on labels 5 | 2.3.2 - Use nodegroup node_tree names as variable name hints 6 | 2.3.3 - Add type hints on nw arguments 7 | 2.4.0 - Add randomization support for Nodes.Integer, add ValueError for commonly missed ATTRS_AVAILABLE 8 | 2.4.1 - Add more node_info entries 9 | 2.4.2 - Sanitize non alphanumeric/underscore characters from variable names 10 | 2.4.3 - Fix duplicated dependencies 11 | 2.5.1 - Cleanup function names when transpiling already transpiled code, limit floats to 4 decimal places 12 | 2.6.0 - Replace manual NODE_ATTRS_AVAILABLE with automatic func, add aliases for bl3.5.1 nodes, switch to logging library 13 | 2.6.1 - Avoid overlength lines, avoid duplicating group_inputs 14 | 2.6.2 - Add dependency input, automatically import dependencies we need 15 | 2.6.3 - Ignore reroutes 16 | 2.6.4 - Fix world/compositor transpiling 17 | 2.6.5 - Revert "Ignore reroutes" 18 | -------------------------------------------------------------------------------- /infinigen/core/nodes/nodegroups/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/core/nodes/nodegroups/__init__.py -------------------------------------------------------------------------------- /infinigen/core/placement/__init__.py: -------------------------------------------------------------------------------- 1 | from . import camera 2 | from .factory import AssetFactory, make_asset_collection 3 | -------------------------------------------------------------------------------- /infinigen/core/rendering/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/core/rendering/__init__.py -------------------------------------------------------------------------------- /infinigen/core/util/__init__.py: -------------------------------------------------------------------------------- 1 | from . import blender as butil 2 | from .math import FixedSeed 3 | from .random import random_general 4 | -------------------------------------------------------------------------------- /infinigen/datagen/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/datagen/__init__.py -------------------------------------------------------------------------------- /infinigen/datagen/configs/.gitignore: -------------------------------------------------------------------------------- 1 | smb_login.gin 2 | debug* -------------------------------------------------------------------------------- /infinigen/datagen/configs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/datagen/configs/__init__.py -------------------------------------------------------------------------------- /infinigen/datagen/configs/asset_demo.gin: -------------------------------------------------------------------------------- 1 | get_cmd.driver_script="asset_demo.py" 2 | main.wandb_project="asset_demo" 3 | LocalScheduleHandler.jobs_per_gpu=3 -------------------------------------------------------------------------------- /infinigen/datagen/configs/base.gin: -------------------------------------------------------------------------------- 1 | sample_scene_spec.config_distribution = [ 2 | ("forest", 4), 3 | ("river", 8), 4 | ("desert", 6), 5 | ("coral_reef", 6), 6 | ("cave", 4), 7 | ("mountain", 4), 8 | ("canyon", 4), 9 | ("plain", 4), 10 | ("cliff", 4), 11 | ("coast", 4), 12 | ("arctic", 1), 13 | ("snowy_mountain", 1), 14 | 15 | # keep these here even if 0, otherwise sample_config_distribution will clash with them if they are provided manually by the user 16 | ("under_water", 0), 17 | ("kelp_forest", 0), 18 | ] 19 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/compute_platform/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/datagen/configs/compute_platform/__init__.py -------------------------------------------------------------------------------- /infinigen/datagen/configs/compute_platform/local_128GB.gin: -------------------------------------------------------------------------------- 1 | include 'infinigen/datagen/configs/compute_platform/local_256GB.gin' 2 | 3 | manage_datagen_jobs.num_concurrent=8 4 | 5 | 6 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/compute_platform/local_16GB.gin: -------------------------------------------------------------------------------- 1 | include 'infinigen/datagen/configs/compute_platform/local_256GB.gin' 2 | 3 | manage_datagen_jobs.num_concurrent=1 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/compute_platform/local_64GB.gin: -------------------------------------------------------------------------------- 1 | include 'infinigen/datagen/configs/compute_platform/local_256GB.gin' 2 | 3 | manage_datagen_jobs.num_concurrent=3 4 | 5 | 6 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/compute_platform/slurm_1h.gin: -------------------------------------------------------------------------------- 1 | include 'infinigen/datagen/configs/compute_platform/slurm.gin' 2 | 3 | slurm_submit_cmd.slurm_niceness = 0 4 | 5 | iterate_scene_tasks.cam_block_size = 2 6 | slurm_submit_cmd.slurm_niceness = 0 7 | 8 | queue_combined.hours = 1 9 | queue_coarse.hours = 1 10 | queue_fine_terrain.hours = 1 11 | queue_populate.hours = 1 12 | queue_render.hours = 1 13 | ground_truth/queue_render.hours = 1 14 | queue_mesh_save.hours = 1 15 | queue_opengl.hours = 1 16 | 17 | queue_coarse.cpus = 8 18 | 19 | queue_upload.hours = 24 20 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/compute_platform/slurm_high_memory.gin: -------------------------------------------------------------------------------- 1 | include 'infinigen/datagen/configs/compute_platform/slurm.gin' 2 | 3 | # Combined (only used when `stereo_combined.gin` or similar is included) 4 | queue_combined.mem_gb = 48 5 | queue_combined.cpus = 4 6 | queue_coarse.mem_gb = 48 7 | queue_coarse.cpus = 4 8 | queue_fine_terrain.mem_gb = 48 9 | queue_fine_terrain.cpus = 4 10 | queue_populate.mem_gb = 48 11 | queue_populate.cpus = 4 12 | queue_populate.hours = 24 13 | queue_export.mem_gb = 48 14 | queue_export.cpus = 4 15 | queue_export.hours = 24 16 | queue_export.submit_cmd = @local_submit_cmd 17 | renderbackup/queue_populate.mem_gb = 48 18 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/cuda_terrain.gin: -------------------------------------------------------------------------------- 1 | queue_fine_terrain.gpus = 1 2 | queue_combined.gpus = 1 3 | queue_fine_terrain.exclude_gpus = ['gtx_1080', 'k80', 'rtx_2080'] 4 | queue_combined.exclude_gpus = ['gtx_1080', 'k80', 'rtx_2080'] -------------------------------------------------------------------------------- /infinigen/datagen/configs/data_schema/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/datagen/configs/data_schema/__init__.py -------------------------------------------------------------------------------- /infinigen/datagen/configs/data_schema/block_terrain_experiment.gin: -------------------------------------------------------------------------------- 1 | iterate_scene_tasks.global_tasks = [ 2 | {'name': 'coarse', 'func': @queue_coarse}, 3 | {'name': "populate", 'func': @queue_populate}, 4 | {'name': 'backuppopulate', 'func': @renderbackup/queue_populate, 'condition': 'prev_failed'}, 5 | ] 6 | iterate_scene_tasks.view_dependent_tasks = [ 7 | {'name': "fineterrain", 'func': @queue_fine_terrain}, 8 | ] 9 | 10 | queue_populate.input_prefix = "coarse" -------------------------------------------------------------------------------- /infinigen/datagen/configs/data_schema/monocular.gin: -------------------------------------------------------------------------------- 1 | iterate_scene_tasks.frame_range=[1,48] 2 | iterate_scene_tasks.render_frame_range=[48,48] 3 | iterate_scene_tasks.n_camera_rigs = 1 4 | iterate_scene_tasks.n_subcams = 1 5 | 6 | iterate_scene_tasks.global_tasks = [ 7 | {'name': 'coarse', 'func': @queue_coarse}, 8 | {'name': "fineterrain", 'func': @queue_fine_terrain}, 9 | {'name': "populate", 'func': @queue_populate}, 10 | {'name': 'backuppopulate', 'func': @renderbackup/queue_populate, 'condition': 'prev_failed'} 11 | ] 12 | iterate_scene_tasks.view_dependent_tasks = [] 13 | iterate_scene_tasks.camera_dependent_tasks = [ 14 | {'name': 'shortrender', 'func': @rendershort/queue_render}, 15 | {'name': 'backuprender', 'func': @renderbackup/queue_render, 'condition': 'prev_failed'}, 16 | ] 17 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/data_schema/monocular_flow.gin: -------------------------------------------------------------------------------- 1 | include 'infinigen/datagen/configs/data_schema/monocular.gin' 2 | iterate_scene_tasks.frame_range=(1, 2) 3 | 4 | 5 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/data_schema/monocular_video.gin: -------------------------------------------------------------------------------- 1 | iterate_scene_tasks.frame_range = [1, 48] 2 | iterate_scene_tasks.view_block_size = 192 3 | iterate_scene_tasks.cam_block_size = 8 4 | iterate_scene_tasks.n_camera_rigs = 1 5 | iterate_scene_tasks.n_subcams = 1 6 | 7 | iterate_scene_tasks.global_tasks = [ 8 | {'name': 'coarse', 'func': @queue_coarse}, 9 | {'name': "fineterrain", 'func': @queue_fine_terrain}, 10 | {'name': "populate", 'func': @queue_populate}, 11 | {'name': 'backuppopulate', 'func': @renderbackup/queue_populate, 'condition': 'prev_failed'}, 12 | ] 13 | iterate_scene_tasks.view_dependent_tasks = [] 14 | iterate_scene_tasks.camera_dependent_tasks = [ 15 | {'name': 'shortrender', 'func': @rendershort/queue_render}, 16 | {'name': 'backuprender', 'func': @renderbackup/queue_render, 'condition': 'prev_failed'}, 17 | ] 18 | 19 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/data_schema/stereo.gin: -------------------------------------------------------------------------------- 1 | include 'infinigen/datagen/configs/data_schema/monocular.gin' 2 | iterate_scene_tasks.n_camera_rigs = 1 3 | iterate_scene_tasks.n_subcams = 2 4 | 5 | iterate_scene_tasks.global_tasks = [ 6 | {'name': "coarse", 'func': @queue_coarse}, 7 | {'name': "fineterrain", 'func': @queue_fine_terrain}, 8 | {'name': "fine", 'func': @queue_populate}, 9 | ] 10 | iterate_scene_tasks.view_dependent_tasks = [] 11 | iterate_scene_tasks.camera_dependent_tasks = [ 12 | {'name': 'rendershort', 'func': @rendershort/queue_render}, 13 | {'name': 'renderbackup', 'func': @renderbackup/queue_render, 'condition': 'prev_failed'} 14 | ] 15 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/data_schema/stereo_1h_jobs.gin: -------------------------------------------------------------------------------- 1 | 2 | iterate_scene_tasks.frame_range=(1, 1) 3 | iterate_scene_tasks.n_camera_rigs = 1 4 | iterate_scene_tasks.n_subcams = 2 5 | 6 | iterate_scene_tasks.global_tasks = [ 7 | {'name': "coarse", 'func': @queue_coarse}, 8 | {'name': "fineterrain", 'func': @queue_fine_terrain}, 9 | {'name': "populate", 'func': @queue_populate}, 10 | ] 11 | iterate_scene_tasks.view_dependent_tasks = [] 12 | iterate_scene_tasks.camera_dependent_tasks = [ 13 | {'name': 'rendershort', 'func': @rendershort/queue_render}, 14 | {'name': 'renderbackup', 'func': @renderbackup/queue_render, 'condition': 'prev_failed'} 15 | ] 16 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/data_schema/stereo_video.gin: -------------------------------------------------------------------------------- 1 | include 'infinigen/datagen/configs/data_schema/monocular_video.gin' 2 | iterate_scene_tasks.n_camera_rigs = 1 3 | iterate_scene_tasks.n_subcams = 2 4 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/export.gin: -------------------------------------------------------------------------------- 1 | iterate_scene_tasks.finalize_tasks = [ 2 | {'name': "export", 'func': @queue_export} 3 | ] -------------------------------------------------------------------------------- /infinigen/datagen/configs/gt_options/blender_gt.gin: -------------------------------------------------------------------------------- 1 | iterate_scene_tasks.camera_dependent_tasks = [ 2 | {'name': 'rendershort', 'func': @rendershort/queue_render}, 3 | {'name': 'renderbackup', 'func': @renderbackup/queue_render, 'condition': 'prev_failed'}, 4 | {'name': 'blendergt', 'func': @ground_truth/queue_render} 5 | ] 6 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/gt_options/gt_test.gin: -------------------------------------------------------------------------------- 1 | iterate_scene_tasks.camera_dependent_tasks = [ 2 | {'name': 'rendershort', 'func': @rendershort/queue_render}, 3 | {'name': 'renderbackup', 'func': @renderbackup/queue_render, 'condition': 'prev_failed'}, 4 | {'name': 'savemesh', 'func': @queue_mesh_save}, 5 | {'name': 'opengl', 'func': @queue_opengl}, 6 | {'name': 'blendergt', 'func': @ground_truth/queue_render}, 7 | ] 8 | 9 | queue_opengl.gt_testing = True -------------------------------------------------------------------------------- /infinigen/datagen/configs/gt_options/opengl_gt.gin: -------------------------------------------------------------------------------- 1 | iterate_scene_tasks.camera_dependent_tasks = [ 2 | {'name': 'rendershort', 'func': @rendershort/queue_render}, 3 | {'name': 'renderbackup', 'func': @renderbackup/queue_render, 'condition': 'prev_failed'}, 4 | {'name': 'savemesh', 'func': @queue_mesh_save}, 5 | {'name': 'opengl', 'func': @queue_opengl}, 6 | ] 7 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/gt_options/opengl_gt_noshortrender.gin: -------------------------------------------------------------------------------- 1 | include 'infinigen/datagen/configs/gt_options/opengl_gt.gin' # incase someone adds other settings to it 2 | 3 | iterate_scene_tasks.camera_dependent_tasks = [ 4 | {'name': 'renderbackup', 'func': @renderbackup/queue_render}, # still call it "backup" since it is reusing the compute_platform's backup config. we are just skipping straight to the backup 5 | {'name': 'savemesh', 'func': @queue_mesh_save}, 6 | {'name': 'opengl', 'func': @queue_opengl} 7 | ] 8 | -------------------------------------------------------------------------------- /infinigen/datagen/configs/indoor_background_configs.gin: -------------------------------------------------------------------------------- 1 | sample_scene_spec.config_distribution = [ 2 | ("forest", 4), 3 | ("river", 4), 4 | ("desert", 4), 5 | ("mountain", 2), 6 | ("canyon", 2), 7 | ("plain", 4), 8 | ("coast", 8), 9 | #("snowy_mountain", 4), # disabled until fast_terrain_assets.gin works for snow sim @mazeyu 10 | ] -------------------------------------------------------------------------------- /infinigen/datagen/configs/stdout_inline.gin: -------------------------------------------------------------------------------- 1 | LocalScheduleHandler.use_gpu = False 2 | local_submit_cmd.stdout_passthrough = True 3 | print_stats_block.mute = True -------------------------------------------------------------------------------- /infinigen/datagen/configs/upload.gin: -------------------------------------------------------------------------------- 1 | iterate_scene_tasks.finalize_tasks = [ 2 | {'name': "upload", 'func': @queue_upload} 3 | ] 4 | 5 | main.upload_commandfile_method='smbclient' 6 | queue_upload.method = 'smbclient' 7 | on_scene_termination.enforce_upload_manifest = True 8 | -------------------------------------------------------------------------------- /infinigen/datagen/customgt/.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | CMakeFiles 3 | *.cmake 4 | *.jpg 5 | *.jpeg 6 | model-test 7 | CMakeCache.txt 8 | DartConfiguration.tcl 9 | build 10 | -------------------------------------------------------------------------------- /infinigen/datagen/customgt/dependencies/glad/src/glad_egl.c: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | EGL loader generated by glad 0.1.35 on Mon Jan 17 21:14:15 2022. 4 | 5 | Language/Generator: C/C++ 6 | Specification: egl 7 | APIs: egl=1.5 8 | Profile: - 9 | Extensions: 10 | 11 | Loader: True 12 | Local files: False 13 | Omit khrplatform: False 14 | Reproducible: False 15 | 16 | Commandline: 17 | --api="egl=1.5" --generator="c" --spec="egl" --extensions="" 18 | Online: 19 | https://glad.dav1d.de/#language=c&specification=egl&loader=on&api=egl%3D1.5 20 | */ 21 | 22 | #include 23 | #include 24 | #include 25 | #include 26 | 27 | int gladLoadEGL(void) { 28 | return gladLoadEGLLoader((GLADloadproc)eglGetProcAddress); 29 | } 30 | 31 | static int find_extensionsEGL(void) { 32 | return 1; 33 | } 34 | 35 | static void find_coreEGL(void) { 36 | } 37 | 38 | int gladLoadEGLLoader(GLADloadproc load) { 39 | (void) load; 40 | find_coreEGL(); 41 | 42 | if (!find_extensionsEGL()) return 0; 43 | return 1; 44 | } 45 | 46 | -------------------------------------------------------------------------------- /infinigen/datagen/customgt/glsl/hair.vert: -------------------------------------------------------------------------------- 1 | // VERTEX SHADER 2 | 3 | #version 440 core 4 | 5 | layout (location = 0) in mat4 instanceMatrix; 6 | layout (location = 4) in mat4 instanceMatrixNext; 7 | layout (location = 8) in vec3 aPos; 8 | layout (location = 9) in vec3 aPos_next; 9 | layout (location = 10) in ivec3 instance_id; 10 | layout (location = 11) in int tag; 11 | layout (location = 12) in float radius; 12 | 13 | uniform mat4 projection; 14 | uniform mat4 view; 15 | uniform mat4 viewNext; 16 | 17 | out VS_OUT { 18 | vec3 pos_wc; 19 | vec3 pos_cc; 20 | vec3 pos_cc_next; 21 | float radius; 22 | } vs_out; 23 | 24 | void main() { 25 | vec4 pos_wc = instanceMatrix * vec4(aPos, 1.0); 26 | vs_out.pos_wc = vec3(pos_wc); 27 | vec4 pos_cc = view * pos_wc; 28 | vs_out.pos_cc = pos_cc.xyz / pos_cc.w; 29 | 30 | vec4 pos_wc_next = instanceMatrixNext * vec4(aPos_next, 1.0); 31 | vec4 pos_cc_next = viewNext * pos_wc_next; 32 | vs_out.pos_cc_next = pos_cc_next.xyz / pos_cc_next.w; 33 | 34 | gl_Position = projection * pos_cc; 35 | vs_out.radius = radius; 36 | } 37 | -------------------------------------------------------------------------------- /infinigen/datagen/customgt/glsl/spine.frag: -------------------------------------------------------------------------------- 1 | // FRAGMENT SHADER 2 | 3 | #version 440 core 4 | 5 | layout (location = 0) out ivec4 rasterized_occ_bounds; 6 | 7 | void main() { 8 | rasterized_occ_bounds = ivec4(0, 1, 0, 1); 9 | } 10 | -------------------------------------------------------------------------------- /infinigen/datagen/customgt/include/load_blender_mesh.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Lahav Lipson 5 | 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include "glm/gtx/string_cast.hpp" 18 | #include 19 | #include "utils.hpp" 20 | #include "cnpy/cnpy.h" 21 | #include "blender_object.hpp" 22 | #include 23 | #include "io.hpp" 24 | 25 | inline std::string truncate(const std::string &str, const size_t width){ 26 | if (str.length() > width) 27 | return str.substr(0, width-3) + "..."; 28 | return str + std::string(width - str.length(), ' '); 29 | } 30 | 31 | std::shared_ptr load_blender_mesh(const fs::path json_path, const fs::path dst_json_path); 32 | 33 | std::vector generate_buffer(const std::vector &indices); 34 | 35 | 36 | -------------------------------------------------------------------------------- /infinigen/datagen/customgt/include/string_tools.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Lahav Lipson 5 | 6 | 7 | #include 8 | #include 9 | 10 | std::vector match_regex(const std::string &pattern, const std::string &input); 11 | 12 | std::string increment_int_substr(const std::vector &patterns, const std::string &input); 13 | 14 | template 15 | std::string zfill(const size_t n_zero, const T old_obj){ 16 | const auto old_str = std::to_string(old_obj); 17 | return std::string(n_zero - std::min(n_zero, old_str.length()), '0') + old_str; 18 | } -------------------------------------------------------------------------------- /infinigen/datagen/customgt/include/utils.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Lahav Lipson 5 | 6 | 7 | #pragma once 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include "cnpy/cnpy.h" 16 | #include 17 | 18 | void release_assert(const char *file, int line, bool condition, const std::string &msg); 19 | #define RASSERT(c) release_assert(__FILE__, __LINE__, c, "") 20 | #define MRASSERT(c, m) release_assert(__FILE__, __LINE__, c, m) 21 | 22 | void glCheckError_(const char *file, int line); 23 | #define glCheckError() glCheckError_(__FILE__, __LINE__) 24 | 25 | class loop_obj { 26 | public: 27 | const int x, y, j; 28 | 29 | loop_obj(int x, int y, int j) : x(x), y(y), j(j) {} 30 | 31 | }; 32 | 33 | const std::vector image_iterator(const int width, const int height, const std::string desc=""); -------------------------------------------------------------------------------- /infinigen/datagen/util/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/datagen/util/__init__.py -------------------------------------------------------------------------------- /infinigen/datagen/util/google_drive_client.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Lahav Lipson 5 | 6 | 7 | import os 8 | import shutil 9 | import subprocess 10 | from pathlib import Path 11 | 12 | 13 | def listdir(remote_path): 14 | stdout = subprocess.check_output( 15 | f"{shutil.which('rclone')} lsf infinigen_renders:{remote_path}/".split(), 16 | text=True, 17 | ) 18 | return sorted((Path(remote_path) / l) for l in stdout.splitlines()) 19 | 20 | 21 | def download(remote_path, local_folder): 22 | assert os.path.exists(local_folder) and os.path.isdir(local_folder) 23 | dest_path = os.path.join(local_folder, os.path.basename(remote_path)) 24 | print(f"Downloading to {dest_path}") 25 | with Path("/dev/null").open("w") as devnull: 26 | subprocess.run( 27 | f'{shutil.which("rclone")} copy infinigen_renders:{remote_path} {local_folder}/', 28 | shell=True, 29 | check=True, 30 | stderr=devnull, 31 | stdout=devnull, 32 | ) 33 | return dest_path 34 | -------------------------------------------------------------------------------- /infinigen/terrain/.gitignore: -------------------------------------------------------------------------------- 1 | *.obj 2 | set_env.sh 3 | build 4 | trash 5 | *.in 6 | *.out 7 | dev 8 | *.zip 9 | __pycache__ 10 | .DS_Store 11 | draft.py 12 | draft.cpp 13 | *egg-info 14 | build 15 | dist 16 | test 17 | Python-3.10.2 18 | *_pyx.cpp 19 | *.so 20 | lib 21 | *.air 22 | *.metallib 23 | dev_install* -------------------------------------------------------------------------------- /infinigen/terrain/__init__.py: -------------------------------------------------------------------------------- 1 | from .core import Terrain, hidden_in_viewport 2 | -------------------------------------------------------------------------------- /infinigen/terrain/assets/caves/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Zeyu Ma 5 | 6 | 7 | from .core import assets_to_data, caves_asset 8 | -------------------------------------------------------------------------------- /infinigen/terrain/assets/caves/cfg.txt: -------------------------------------------------------------------------------- 1 | 2 | # Starting Symbol 3 | Q (1.0) -> [ A ] Piv180 [ A ] 4 | 5 | # Turning 6 | T (0.5) -> TurnR45 7 | T (0.5) -> TurnL45 8 | 9 | TurnR90 (1.0) -> TurnR45 TurnR45 10 | TurnL90 (1.0) -> TurnL45 TurnL45 11 | Piv180 (1.0) -> l l l l l l l l l l l l 12 | 13 | TurnU75 (1.0) -> u f u f u f u f 14 | TurnD75 (1.0) -> d f d f d f d f 15 | TurnL45 (1.0) -> l f l f l f 16 | TurnR45 (1.0) -> r f r f r f 17 | 18 | # S-Curve 19 | H (0.5) -> TurnU75 TurnD75 20 | H (0.5) -> TurnD75 TurnU75 21 | 22 | # Wildcard 23 | A (0.45) -> S 24 | A (0.45) -> P 25 | A (0.1) -> n 26 | 27 | # Split-offs 28 | S (0.8) -> [ A H A ] A 29 | S (0.1) -> [ TurnL90 A ] A 30 | S (0.1) -> [ TurnR90 A ] A 31 | 32 | # Non Split-offs 33 | P (0.5) -> T A 34 | P (0.5) -> f f f A 35 | -------------------------------------------------------------------------------- /infinigen/terrain/assets/landtiles/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Zeyu Ma 5 | 6 | 7 | from .core import assets_to_data, landtile_asset 8 | -------------------------------------------------------------------------------- /infinigen/terrain/marching_cubes/.gitignore: -------------------------------------------------------------------------------- 1 | *.c 2 | test.py -------------------------------------------------------------------------------- /infinigen/terrain/mesh_to_sdf/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Marian Kleineberg 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /infinigen/terrain/mesh_to_sdf/shaders/mesh.frag: -------------------------------------------------------------------------------- 1 | # COPYRIGHT 2 | 3 | # Original files authored by Marian Kleineberg: https://github.com/marian42/mesh_to_sdf/tree/master 4 | 5 | #version 330 core 6 | 7 | in vec3 frag_position; 8 | in vec3 frag_normal; 9 | 10 | out vec4 frag_color; 11 | 12 | void main() 13 | { 14 | vec3 normal = normalize(frag_normal); 15 | 16 | frag_color = vec4(normal * 0.5 + 0.5, 1.0); 17 | } -------------------------------------------------------------------------------- /infinigen/terrain/mesh_to_sdf/shaders/mesh.vert: -------------------------------------------------------------------------------- 1 | # COPYRIGHT 2 | 3 | # Original files authored by Marian Kleineberg: https://github.com/marian42/mesh_to_sdf/tree/master 4 | 5 | #version 330 core 6 | 7 | // Vertex Attributes 8 | layout(location = 0) in vec3 position; 9 | layout(location = NORMAL_LOC) in vec3 normal; 10 | layout(location = INST_M_LOC) in mat4 inst_m; 11 | 12 | // Uniforms 13 | uniform mat4 M; 14 | uniform mat4 V; 15 | uniform mat4 P; 16 | 17 | // Outputs 18 | out vec3 frag_position; 19 | out vec3 frag_normal; 20 | 21 | void main() 22 | { 23 | gl_Position = P * V * M * inst_m * vec4(position, 1); 24 | frag_position = vec3(M * inst_m * vec4(position, 1.0)); 25 | 26 | mat4 N = transpose(inverse(M * inst_m)); 27 | frag_normal = normalize(vec3(N * vec4(normal, 0.0))); 28 | } -------------------------------------------------------------------------------- /infinigen/terrain/mesher/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Zeyu Ma 5 | 6 | 7 | from .spherical_mesher import OpaqueSphericalMesher, TransparentSphericalMesher 8 | from .uniform_mesher import UniformMesher 9 | -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/elements/atmosphere.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | 9 | 10 | extern "C" { 11 | void call( 12 | size_t size, 13 | float3_nonbuiltin *positions, 14 | float *sdfs 15 | ) { 16 | using namespace data; 17 | #pragma omp parallel for 18 | for (size_t idx = 0; idx < size; idx++) { 19 | atmosphere( 20 | positions[idx], sdfs + idx, meta_param, 21 | d_i_params, d_f_params, second_d_i_params, second_d_f_params 22 | ); 23 | 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/elements/ground.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float *sdfs, 16 | float *auxs 17 | ) { 18 | using namespace data; 19 | int n_auxiliaries = 1; 20 | if (auxs == NULL) n_auxiliaries = 0; 21 | #pragma omp parallel for 22 | for (size_t idx = 0; idx < size; idx++) { 23 | ground( 24 | positions[idx], sdfs + idx, auxs + n_auxiliaries * idx, meta_param, 25 | d_i_params, d_f_params, second_d_i_params, second_d_f_params 26 | ); 27 | } 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/elements/header.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include 8 | #include 9 | #include 10 | using namespace std; 11 | #define DEVICE_FUNC 12 | #define CONSTANT_ARRAY const 13 | #include "../../common/utils/vectors.h" 14 | #include "../../../../infinigen_gpl/bnodes/utils/nodes_util.h" 15 | #include "../../../../infinigen_gpl/bnodes/utils/blender_noise.h" 16 | #include "../../common/utils/elements_util.h" 17 | #include "../../common/utils/FastNoiseLite.h" 18 | #include "../../common/utils/smooth_bool_ops.h" 19 | #include "../../common/elements/caves.h" 20 | #include "../../common/elements/landtiles.h" 21 | #include "../../common/elements/ground.h" 22 | #include "../../common/elements/voronoi_rocks.h" 23 | #include "../../common/elements/warped_rocks.h" 24 | #include "../../common/elements/upsidedown_mountains.h" 25 | #include "../../common/elements/mountains.h" 26 | #include "../../common/elements/waterbody.h" 27 | #include "../../common/elements/atmosphere.h" 28 | #include "core.cpp" 29 | -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/elements/landtiles.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float *sdfs, 16 | float *auxs 17 | ) { 18 | using namespace data; 19 | int n_auxiliaries = 3; 20 | if (auxs == NULL) n_auxiliaries = 0; 21 | #pragma omp parallel for 22 | for (size_t idx = 0; idx < size; idx++) { 23 | landtiles( 24 | positions[idx], sdfs + idx, auxs + n_auxiliaries * idx, meta_param, 25 | d_i_params, d_f_params, second_d_i_params, second_d_f_params 26 | ); 27 | } 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/elements/mountains.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float *sdfs 16 | ) { 17 | using namespace data; 18 | #pragma omp parallel for 19 | for (size_t idx = 0; idx < size; idx++) { 20 | mountains(positions[idx], sdfs + idx, d_i_params, d_f_params); 21 | } 22 | } 23 | 24 | 25 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/elements/upsidedown_mountains.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | 9 | 10 | extern "C" { 11 | void call( 12 | size_t size, 13 | float3_nonbuiltin *positions, 14 | float *sdfs, 15 | float *auxs 16 | ) { 17 | using namespace data; 18 | int n_auxiliaries = 1; 19 | if (auxs == NULL) n_auxiliaries = 0; 20 | #pragma omp parallel for 21 | for (size_t idx = 0; idx < size; idx++) { 22 | upsidedown_mountains(positions[idx], sdfs + idx, auxs + n_auxiliaries * idx, d_i_params, d_f_params); 23 | } 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/elements/voronoi_rocks.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | 9 | extern "C" { 10 | 11 | void call( 12 | size_t size, 13 | float3_nonbuiltin *positions, 14 | float *sdfs, 15 | float *auxs 16 | ) { 17 | using namespace data; 18 | int n_auxiliaries = 2; 19 | if (auxs == NULL) n_auxiliaries = 0; 20 | #pragma omp parallel for 21 | for (size_t idx = 0; idx < size; idx++) { 22 | voronoi_rocks( 23 | positions[idx], sdfs + idx, auxs + n_auxiliaries * idx, meta_param, second_meta_param, 24 | d_i_params, d_f_params, second_d_i_params, second_d_f_params, third_d_i_params, third_d_f_params 25 | ); 26 | } 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/elements/warped_rocks.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float *sdfs, 16 | float *auxs 17 | ) { 18 | using namespace data; 19 | int n_auxiliaries = 1; 20 | if (auxs == NULL) n_auxiliaries = 0; 21 | #pragma omp parallel for 22 | for (size_t idx = 0; idx < size; idx++) { 23 | warped_rocks( 24 | positions[idx], sdfs + idx, auxs + n_auxiliaries * idx, meta_param, 25 | d_i_params, d_f_params, second_d_i_params, second_d_f_params 26 | ); 27 | } 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/elements/waterbody.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | 9 | extern "C" { 10 | void call( 11 | size_t size, 12 | float3_nonbuiltin *positions, 13 | float *sdfs, 14 | float *auxs 15 | ) { 16 | using namespace data; 17 | int n_auxiliaries = 1; 18 | if (auxs == NULL) n_auxiliaries = 0; 19 | #pragma omp parallel for 20 | for (size_t idx = 0; idx < size; idx++) { 21 | waterbody( 22 | positions[idx], sdfs + idx, auxs + n_auxiliaries * idx, meta_param, second_meta_param, 23 | d_i_params, d_f_params, second_d_i_params, second_d_f_params, third_d_i_params, third_d_f_params 24 | ); 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/soil_machine/soil/README.md: -------------------------------------------------------------------------------- 1 | # SoilMachine 2 | 3 | ## .soil files 4 | 5 | This represents a really simple file format that lets you pre-define a set of soils which are loaded into the simulation at runtime. The goal is to be able to play with parameters and soil-cascades without needing to recompile. 6 | 7 | ## definition 8 | 9 | todo (read the .default file) 10 | -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/soil_machine/soil/default.soil: -------------------------------------------------------------------------------- 1 | # SoilMachine Soil File 2 | 3 | #============ 4 | # World 5 | #============ 6 | 7 | WORLD { 8 | 9 | #SEED 0 10 | 11 | SCALE 80 12 | SIZEX 256 13 | SIZEY 256 14 | 15 | 16 | } 17 | 18 | #============ 19 | # Rock 20 | #============ 21 | 22 | SOIL Rock { 23 | 24 | TRANSPORTS Rock 25 | ERODES Rock 26 | ABRADES Rock 27 | CASCADES Rock 28 | 29 | DENSITY 0.95 30 | COLOR 444444 31 | 32 | Ka 0.5 33 | Kd 0.8 34 | Ks 0.2 35 | Kk 8.0 36 | 37 | POROSITY 0.0 38 | SOLUBILITY 1.0 39 | EQUILIBRIUM 0.1 40 | FRICTION 0.15 41 | 42 | EROSIONRATE 0.0 43 | 44 | MAXDIFF 0.01 45 | SETTLING 0.1 46 | 47 | SUSPENSION 0.0 48 | ABRASION 0.0 49 | 50 | } 51 | 52 | LAYER Rock { 53 | 54 | MIN 0.0 55 | BIAS 0.5 56 | SCALE 0.8 57 | 58 | OCTAVES 8.0 59 | LACUNARITY 2.0 60 | GAIN 0.5 61 | FREQUENCY 1.0 62 | 63 | } 64 | -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/soil_machine/soil/sand.soil: -------------------------------------------------------------------------------- 1 | # SoilMachine Soil File 2 | 3 | #============ 4 | # World 5 | #============ 6 | 7 | WORLD { 8 | 9 | #SEED 0 10 | 11 | SCALE 80 12 | SIZEX 256 13 | SIZEY 256 14 | 15 | NWATER 50 16 | NWIND 250 17 | 18 | } 19 | 20 | #============== 21 | # RED SAND 22 | #============== 23 | 24 | SOIL Red Sand { 25 | 26 | TRANSPORTS Red Sand 27 | ERODES Red Sand 28 | ABRADES Red Sand 29 | CASCADES Red Sand 30 | 31 | DENSITY 0.4 32 | COLOR E0A26D 33 | 34 | POROSITY 0.8 35 | SOLUBILITY 1.0 36 | EQUILIBRIUM 0.1 37 | FRICTION 0.1 38 | 39 | EROSIONRATE 0.0 40 | 41 | MAXDIFF 0.005 42 | SETTLING 0.05 43 | 44 | SUSPENSION 0.01 45 | ABRASION 0.0 46 | 47 | } 48 | 49 | LAYER Red Sand { 50 | 51 | MIN 0.0 52 | BIAS 0.5 53 | SCALE 0.4 54 | 55 | OCTAVES 6.0 56 | LACUNARITY 2.0 57 | GAIN 0.4 58 | FREQUENCY 2.0 59 | 60 | } 61 | -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/surfaces/chunkyrock.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | #include "../../common/surfaces/chunkyrock.h" 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float3_nonbuiltin *normals, 16 | size_t n_f_params, float *f_params, 17 | size_t n_f3_params, float3_nonbuiltin *f3_params, 18 | size_t n_f4_params, float4_nonbuiltin *f4_params, 19 | float3_nonbuiltin *offsets 20 | ) { 21 | #pragma omp parallel for 22 | for (size_t idx = 0; idx < size; idx++) { 23 | geo_rocks( 24 | positions[idx], normals[idx], f_params, f3_params, f4_params, 25 | offsets + idx 26 | ); 27 | } 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/surfaces/cobble_stone.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | #include "../../common/surfaces/cobble_stone.h" 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float3_nonbuiltin *normals, 16 | size_t n_f_params, float *f_params, 17 | size_t n_f4_params, float4_nonbuiltin *f4_params, 18 | float3_nonbuiltin *offsets 19 | ) { 20 | #pragma omp parallel for 21 | for (size_t idx = 0; idx < size; idx++) { 22 | geo_cobblestone( 23 | positions[idx], normals[idx], f_params, f4_params, 24 | offsets + idx 25 | ); 26 | } 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/surfaces/cracked_ground.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | #include "../../common/surfaces/cracked_ground.h" 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float3_nonbuiltin *normals, 16 | size_t n_f_params, float *f_params, 17 | float3_nonbuiltin *offsets 18 | ) { 19 | #pragma omp parallel for 20 | for (size_t idx = 0; idx < size; idx++) { 21 | geo_cracked_ground( 22 | positions[idx], normals[idx], f_params, 23 | offsets + idx 24 | ); 25 | } 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/surfaces/dirt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | #include "../../common/surfaces/dirt.h" 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float3_nonbuiltin *normals, 16 | size_t n_f_params, float *f_params, 17 | size_t n_f3_params, float3_nonbuiltin *f3_params, 18 | float3_nonbuiltin *offsets 19 | ) { 20 | #pragma omp parallel for 21 | for (size_t idx = 0; idx < size; idx++) { 22 | geo_dirt( 23 | positions[idx], normals[idx], f_params, f3_params, 24 | offsets + idx 25 | ); 26 | } 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/surfaces/ice.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | #include "../../common/surfaces/ice.h" 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float3_nonbuiltin *normals, 16 | size_t n_f_params, float *f_params, 17 | float3_nonbuiltin *offsets 18 | ) { 19 | #pragma omp parallel for 20 | for (size_t idx = 0; idx < size; idx++) { 21 | geo_ice( 22 | positions[idx], normals[idx], f_params, 23 | offsets + idx 24 | ); 25 | } 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/surfaces/mountain.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | #include "../../common/surfaces/mountain.h" 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float3_nonbuiltin *normals, 16 | size_t n_f_params, float *f_params, 17 | size_t n_f3_params, float3_nonbuiltin *f3_params, 18 | float3_nonbuiltin *offsets 19 | ) { 20 | #pragma omp parallel for 21 | for (size_t idx = 0; idx < size; idx++) { 22 | geo_MOUNTAIN( 23 | positions[idx], normals[idx], f_params, f3_params, 24 | offsets + idx 25 | ); 26 | } 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/surfaces/mud.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | #include "../../common/surfaces/mud.h" 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float3_nonbuiltin *normals, 16 | size_t n_f_params, float *f_params, 17 | float3_nonbuiltin *offsets 18 | ) { 19 | #pragma omp parallel for 20 | for (size_t idx = 0; idx < size; idx++) { 21 | geo_mud( 22 | positions[idx], normals[idx], f_params, 23 | offsets + idx 24 | ); 25 | } 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/surfaces/sand.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | #include "../../common/surfaces/sand.h" 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float3_nonbuiltin *normals, 16 | size_t n_f_params, float *f_params, 17 | size_t n_f3_params, float3_nonbuiltin *f3_params, 18 | float3_nonbuiltin *offsets 19 | ) { 20 | #pragma omp parallel for 21 | for (size_t idx = 0; idx < size; idx++) { 22 | geo_SAND( 23 | positions[idx], normals[idx], f_params, f3_params, 24 | offsets + idx 25 | ); 26 | } 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/surfaces/sandstone.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | #include "../../common/surfaces/sandstone.h" 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float3_nonbuiltin *normals, 16 | size_t n_f_params, float *f_params, 17 | size_t n_f3_params, float3_nonbuiltin *f3_params, 18 | float3_nonbuiltin *offsets 19 | ) { 20 | #pragma omp parallel for 21 | for (size_t idx = 0; idx < size; idx++) { 22 | geometry_sandstone( 23 | positions[idx], normals[idx], f_params, f3_params, 24 | offsets + idx 25 | ); 26 | } 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/surfaces/snow.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | #include "../../common/surfaces/snow.h" 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float3_nonbuiltin *normals, 16 | float3_nonbuiltin *offsets 17 | ) { 18 | #pragma omp parallel for 19 | for (size_t idx = 0; idx < size; idx++) { 20 | geo_snowtexture( 21 | positions[idx], normals[idx], 22 | offsets + idx 23 | ); 24 | } 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/surfaces/soil.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | #include "../../common/surfaces/soil.h" 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float3_nonbuiltin *normals, 16 | size_t n_f_params, float *f_params, 17 | size_t n_f4_params, float4_nonbuiltin *f4_params, 18 | float3_nonbuiltin *offsets 19 | ) { 20 | #pragma omp parallel for 21 | for (size_t idx = 0; idx < size; idx++) { 22 | geometry_soil( 23 | positions[idx], normals[idx], f_params, f4_params, 24 | offsets + idx 25 | ); 26 | } 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/surfaces/stone.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include "header.h" 8 | #include "../../common/surfaces/stone.h" 9 | 10 | extern "C" { 11 | 12 | void call( 13 | size_t size, 14 | float3_nonbuiltin *positions, 15 | float3_nonbuiltin *normals, 16 | size_t n_f_params, float *f_params, 17 | size_t n_f3_params, float3_nonbuiltin *f3_params, 18 | size_t n_f4_params, float4_nonbuiltin *f4_params, 19 | float3_nonbuiltin *offsets 20 | ) { 21 | #pragma omp parallel for 22 | for (size_t idx = 0; idx < size; idx++) { 23 | geo_stone( 24 | positions[idx], normals[idx], f_params, f3_params, f4_params, 25 | offsets + idx 26 | ); 27 | } 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /infinigen/terrain/source/cpu/utils/FastNoiseLite.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023, Princeton University. 2 | // This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | // Authors: Zeyu Ma 5 | 6 | 7 | #include 8 | using namespace std; 9 | #define DEVICE_FUNC 10 | #define CONSTANT_ARRAY const 11 | #include "../../common/utils/vectors.h" 12 | #include "../../common/utils/FastNoiseLite.h" 13 | 14 | 15 | extern "C" { 16 | 17 | void perlin_call( 18 | size_t size, 19 | float3_nonbuiltin *positions, 20 | float *values, 21 | int seed, int octaves, float freq 22 | ) { 23 | for (size_t idx = 0; idx < size; idx++) { 24 | values[idx] = Perlin(positions[idx].x, positions[idx].y, positions[idx].z, seed, octaves, freq); 25 | } 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /infinigen/terrain/utils/ctype_util.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Zeyu Ma 5 | 6 | 7 | from ctypes import CDLL, POINTER, RTLD_LOCAL, c_double, c_float, c_int32 8 | from pathlib import Path 9 | 10 | 11 | # note: size of x should not exceed maximum 12 | def ASINT(x): 13 | return x.ctypes.data_as(POINTER(c_int32)) 14 | 15 | 16 | def ASDOUBLE(x): 17 | return x.ctypes.data_as(POINTER(c_double)) 18 | 19 | 20 | def ASFLOAT(x): 21 | return x.ctypes.data_as(POINTER(c_float)) 22 | 23 | 24 | def register_func(me, dll, name, argtypes=[], restype=None, caller_name=None): 25 | if caller_name is None: 26 | caller_name = name 27 | setattr(me, caller_name, getattr(dll, name)) 28 | func = getattr(me, caller_name) 29 | func.argtypes = argtypes 30 | func.restype = restype 31 | 32 | 33 | def load_cdll(path): 34 | root = Path(__file__).parent.parent.parent 35 | return CDLL(root / path, mode=RTLD_LOCAL) 36 | -------------------------------------------------------------------------------- /infinigen/terrain/utils/logging.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Zeyu Ma 5 | 6 | 7 | import os 8 | 9 | import gin 10 | import psutil 11 | 12 | from infinigen.core.util.logging import Timer as oTimer 13 | 14 | 15 | def report_memory(): 16 | process = psutil.Process(os.getpid()) 17 | print(f"memory usage: {process.memory_info().rss}") 18 | 19 | 20 | @gin.configurable("TerrainTimer") 21 | class Timer(oTimer): 22 | def __init__(self, desc, verbose): 23 | super().__init__(desc) 24 | self.verbose = verbose 25 | 26 | def __enter__(self): 27 | if self.verbose: 28 | super().__enter__() 29 | 30 | def __exit__(self, exc_type, exc_val, traceback): 31 | if self.verbose: 32 | super().__exit__(exc_type, exc_val, traceback) 33 | report_memory() 34 | -------------------------------------------------------------------------------- /infinigen/tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/tools/__init__.py -------------------------------------------------------------------------------- /infinigen/tools/blendscript_path_append.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory 3 | # of this source tree. 4 | 5 | # Authors: Alexander Raistrick 6 | 7 | import os 8 | import sys 9 | 10 | pwd = os.getcwd() 11 | sys.path.append(pwd) 12 | -------------------------------------------------------------------------------- /infinigen/tools/config/demo_config.yaml: -------------------------------------------------------------------------------- 1 | 2 | scene: 3 | num_static_objs: 5 4 | num_rearrange_objs: 5 5 | ground_size: 2.0 6 | support_scene: 'scene_000' 7 | support_restitution: 0.5 8 | support_static_friction: 0.6 9 | support_dynamic_friction: 0.4 10 | camera_resolution: (1280, 720) 11 | robot_base_ori: [0, 0, -90] 12 | 13 | -------------------------------------------------------------------------------- /infinigen/tools/ground_truth/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/tools/ground_truth/__init__.py -------------------------------------------------------------------------------- /infinigen/tools/perceptual/rename.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Karhan Kayan 5 | 6 | import os 7 | import sys 8 | 9 | if __name__ == "__main__": 10 | # Set the directory containing your files 11 | directory = sys.argv[1] 12 | 13 | # List all files in the directory 14 | files = os.listdir(directory) 15 | 16 | # Sort files if necessary 17 | files.sort() # This sorts in lexicographical order 18 | 19 | # Rename each file 20 | for i, filename in enumerate(files, start=1): 21 | old_path = os.path.join(directory, filename) 22 | _, file_extension = os.path.splitext(filename) 23 | new_path = os.path.join(directory, f"{i}{file_extension}") 24 | os.rename(old_path, new_path) 25 | -------------------------------------------------------------------------------- /infinigen/tools/results/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/tools/results/__init__.py -------------------------------------------------------------------------------- /infinigen/tools/results/bremm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/tools/results/bremm.png -------------------------------------------------------------------------------- /infinigen/tools/terrain/palette/.gitignore: -------------------------------------------------------------------------------- 1 | images 2 | css 3 | json -------------------------------------------------------------------------------- /infinigen/tools/terrain/palette/demo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/tools/terrain/palette/demo1.png -------------------------------------------------------------------------------- /infinigen/tools/terrain/palette/demo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/tools/terrain/palette/demo2.png -------------------------------------------------------------------------------- /infinigen/tools/terrain/palette/demo3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/tools/terrain/palette/demo3.png -------------------------------------------------------------------------------- /infinigen/tools/terrain/palette/demo4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen/tools/terrain/palette/demo4.png -------------------------------------------------------------------------------- /infinigen_examples/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/princeton-vl/infinigen/0a16b0f54b0aae157db255c6fbb17a944c612697/infinigen_examples/__init__.py -------------------------------------------------------------------------------- /infinigen_examples/configs_indoor/disable/no_details.gin: -------------------------------------------------------------------------------- 1 | compose_indoors.room_doors_enabled = False 2 | compose_indoors.room_windows_enabled = False 3 | 4 | compose_indoors.room_floors_enabled = False 5 | compose_indoors.room_walls_enabled = False 6 | compose_indoors.room_ceilings_enabled = False 7 | 8 | compose_indoors.skirting_floor_enabled = False 9 | compose_indoors.skirting_ceiling_enabled = False -------------------------------------------------------------------------------- /infinigen_examples/configs_indoor/disable/no_objects.gin: -------------------------------------------------------------------------------- 1 | compose_indoors.solve_large_enabled = False 2 | compose_indoors.solve_medium_enabled = False 3 | compose_indoors.solve_small_enabled = False -------------------------------------------------------------------------------- /infinigen_examples/configs_indoor/export_upload.gin: -------------------------------------------------------------------------------- 1 | export_curr_scene.format = 'obj' 2 | export_curr_scene.individual_export = True 3 | -------------------------------------------------------------------------------- /infinigen_examples/configs_indoor/fast_solve.gin: -------------------------------------------------------------------------------- 1 | FloorPlanSolver.n_divide_trials = 25 2 | FloorPlanSolver.iters_mult = 25 3 | GraphMaker.fast=True 4 | 5 | home_room_constraints.fast = True 6 | 7 | solve_objects.addition_weight_scalar = 3.0 8 | 9 | compose_indoors.solve_steps_large = 100 10 | compose_indoors.solve_steps_medium = 40 11 | compose_indoors.solve_steps_small = 5 12 | 13 | compose_indoors.terrain_enabled = False 14 | -------------------------------------------------------------------------------- /infinigen_examples/configs_indoor/multistory.gin: -------------------------------------------------------------------------------- 1 | RoomConstants.n_stories = ('cat', 0., .5, .4, .1) -------------------------------------------------------------------------------- /infinigen_examples/configs_indoor/overhead.gin: -------------------------------------------------------------------------------- 1 | compose_indoors.invisible_room_ceilings_enabled = True 2 | compose_indoors.hide_other_rooms_enabled = True 3 | 4 | compose_indoors.pose_cameras_enabled = False 5 | compose_indoors.overhead_cam_enabled = True 6 | 7 | compose_indoors.terrain_enabled = False 8 | compose_indoors.nature_backdrop_enabled = False 9 | 10 | compose_indoors.lights_off_chance = 0.0 11 | 12 | compose_indoors.skirting_floor_chance = 0.0 13 | compose_indoors.skirting_ceiling_chance = 0.0 14 | 15 | 16 | -------------------------------------------------------------------------------- /infinigen_examples/configs_indoor/singleroom.gin: -------------------------------------------------------------------------------- 1 | BlueprintSolidifier.enable_open=False 2 | restrict_solving.solve_max_rooms=1 -------------------------------------------------------------------------------- /infinigen_examples/configs_indoor/topview.gin: -------------------------------------------------------------------------------- 1 | execute_tasks.generate_resolution = (720, 720) 2 | get_sensor_coords.H = 720 3 | get_sensor_coords.W = 720 4 | 5 | compose_indoors.topview=True 6 | compose_indoors.terrain_enabled=False 7 | compose_indoors.solve_large_enabled=False 8 | compose_indoors.solve_small_enabled=False 9 | -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/.gitignore: -------------------------------------------------------------------------------- 1 | local_debug*.gin -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/asset_demo.gin: -------------------------------------------------------------------------------- 1 | compose_nature.inview_distance = 30 2 | 3 | configure_render_cycles.min_samples = 50 4 | configure_render_cycles.num_samples = 300 5 | 6 | configure_blender.motion_blur = False 7 | render_image.use_dof = True 8 | 9 | full/render_image.passes_to_save = [] -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/disable_assets/no_creatures.gin: -------------------------------------------------------------------------------- 1 | compose_nature.ground_creatures_chance = 0.0 2 | compose_nature.flying_creatures_chance = 0.0 3 | compose_nature.fish_school_chance = 0.0 4 | compose_nature.bug_swarm_chance = 0.0 5 | -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/disable_assets/no_landlab.gin: -------------------------------------------------------------------------------- 1 | scene.upsidedown_mountains_chance = 0 2 | ant_landscape_asset.snowfall = 0 3 | multi_mountains_asset.snowfall = 0 4 | coast_asset.snowfall = 0 5 | get_land_process.snowfall_enabled = 0 6 | -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/disable_assets/no_particles.gin: -------------------------------------------------------------------------------- 1 | compose_nature.rain_particles_chance = 0.0 2 | compose_nature.snow_particles_chance = 0.0 3 | compose_nature.leaf_particles_chance = 0.0 4 | compose_nature.dust_particles_chance = 0.0 5 | compose_nature.marine_snow_particles_chance = 0.0 -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/disable_assets/no_rocks.gin: -------------------------------------------------------------------------------- 1 | compose_nature.boulders_chance = 0.0 2 | compose_nature.rocks_chance = 0.0 -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/extras/experimental.gin: -------------------------------------------------------------------------------- 1 | # things that are not quite fully working correctly, but you can use if you please 2 | 3 | configure_blender.motion_blur = True # not fully supported in ground truth 4 | compose_nature.rain_particles_chance = 0.1 # doesnt look good when not using motion blur 5 | 6 | # compose_nature.marine_snow_particles_chance = 0.1 # TODO only put this in underwater scenes 7 | # water.is_ocean = ("bool", 0.5) # TODO put this only in underwater scenes 8 | -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/extras/overhead.gin: -------------------------------------------------------------------------------- 1 | animate_cameras.follow_poi_chance=0.0 2 | camera.camera_pose_proposal.altitude = ("clip_gaussian", 30, 20, 17, 70) 3 | camera.camera_pose_proposal.pitch = ("clip_gaussian", 0, 30, 0, 15) 4 | 5 | placement.populate_all.dist_cull = 70 6 | compose_nature.inview_distance = 70 7 | compose_nature.near_distance = 40 8 | compose_nature.center_distance = 40 9 | 10 | compose_nature.animate_cameras_enabled = False -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/extras/stereo_training.gin: -------------------------------------------------------------------------------- 1 | # eliminate blurs / distortion that cause blurs or bad alignment of the depth map 2 | compositor_postprocessing.distort = False 3 | configure_blender.motion_blur = False 4 | render_image.use_dof = False 5 | 6 | # remove volume scatters, as the corrupt blender's depth map 7 | atmosphere_light_haze.shader_atmosphere.enable_scatter = False 8 | water.shader.enable_scatter = False 9 | 10 | # dont include tiny particles, they arent sufficiently visible 11 | compose_nature.rain_particles_chance = 0 12 | compose_nature.dust_particles_chance = 0 13 | compose_nature.snow_particles_chance = 0 14 | 15 | # eliminate lava, the emissive surface is too noisy 16 | # now by default lava is a separate material 17 | surface.registry.liquid_collection = [ 18 | ('water', 0.95), 19 | ] 20 | surface.registry.lava = [ 21 | ('water', 1), 22 | ] 23 | 24 | # reduce the baseline and pitch variance, requested by Lahav 25 | stereo_baseline = 0.075 26 | sample_camera_rotation.pitch_params = {'min': -20, 'max': 20, 'mean': 0, 'std': 15} 27 | -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/extras/use_cached_fire.gin: -------------------------------------------------------------------------------- 1 | populate_scene.trees_fire_on_the_fly_chance = 0 2 | populate_scene.bushes_fire_on_the_fly_chance = 0 3 | populate_scene.creatures_fire_on_the_fly_chance = 0 4 | populate_scene.boulders_fire_on_the_fly_chance = 0 5 | populate_scene.cactus_fire_on_the_fly_chance = 0 6 | 7 | compose_nature.cached_fire_trees_chance= 0.5 8 | compose_nature.cached_fire_bushes_chance = 1 9 | compose_nature.cached_fire_boulders_chance = 0.3 10 | compose_nature.cached_fire_cactus_chance = 0.4 11 | 12 | 13 | configure_render_cycles.exposure = 0.4 14 | compose_nature.cached_fire = True 15 | populate_scene.cached_fire = True 16 | 17 | FireCachingSystem.asset_folder = "" -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/extras/use_on_the_fly_fire.gin: -------------------------------------------------------------------------------- 1 | populate_scene.trees_fire_on_the_fly_chance = 0.1 2 | #compose_nature.trees_chance = 1 3 | populate_scene.bushes_fire_on_the_fly_chance = 0.8 4 | #compose_nature.bushes_chance = 1 5 | populate_scene.creatures_fire_on_the_fly_chance = 0 6 | populate_scene.boulders_fire_on_the_fly_chance = 0.1 7 | populate_scene.cactus_fire_on_the_fly_chance = 0.1 8 | compose_nature.glowing_rocks_chance = 0.0 9 | 10 | compose_nature.cached_fire = False 11 | LandTiles.land_processes = None 12 | #scene.voronoi_rocks_chance = 1 13 | #animate_cameras.follow_poi_chance=0 14 | 15 | configure_render_cycles.exposure = 0.4 16 | 17 | set_obj_on_fire.resolution = 430 18 | set_obj_on_fire.dissolve_speed = 25 19 | -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/monocular.gin: -------------------------------------------------------------------------------- 1 | camera.spawn_camera_rigs.camera_rig_config = [ 2 | {'loc': (0, 0, 0), 'rot_euler': (0, 0, 0)}, 3 | ] 4 | -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/multiview_stereo.gin: -------------------------------------------------------------------------------- 1 | compute_base_views.min_candidates_ratio = 1 2 | fine_terrain.mesher_backend = "OcMesher" 3 | 4 | configure_cameras.mvs_setting = True 5 | compose_nature.camera_selection_ranges_ratio = {} 6 | compose_nature.camera_selection_tags_ratio = {} 7 | compose_nature.animate_cameras_enabled=False 8 | 9 | compose_nature.inview_distance = 40 -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/noisy_video.gin: -------------------------------------------------------------------------------- 1 | fine_terrain.mesher_backend = "OcMesher" 2 | AnimPolicyRandomWalkLookaround.speed = ("uniform", 3, 10) 3 | AnimPolicyRandomWalkLookaround.yaw_sampler = ("uniform", -50, 50) 4 | AnimPolicyRandomWalkLookaround.step_range = ('clip_gaussian', 1, 3, 0.6, 5) 5 | -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/performance/dev.gin: -------------------------------------------------------------------------------- 1 | execute_tasks.generate_resolution = (960, 540) 2 | 3 | configure_render_cycles.min_samples = 32 4 | configure_render_cycles.num_samples = 512 5 | 6 | OpaqueSphericalMesher.pixels_per_cube = 4 7 | TransparentSphericalMesher.pixels_per_cube = 4 8 | target_face_size.global_multiplier = 2 9 | 10 | compose_nature.ground_creatures_chance = 0.0 11 | compose_nature.flying_creatures_chance = 0.0 12 | 13 | compose_nature.inview_distance = 35 14 | placement.populate_all.dist_cull = 35 15 | compose_nature.near_distance = 10 16 | compose_nature.center_distance = 20 -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/performance/fast_terrain_assets.gin: -------------------------------------------------------------------------------- 1 | landtiles.load_assets.on_the_fly_instances = 1 2 | upsidedown_mountains.load_assets.on_the_fly_instances = 1 3 | caves.load_assets.on_the_fly_instances = 1 4 | 5 | run_erosion.n_iters = [1,1] 6 | scene.caves_chance=0.0 -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/performance/high_quality_terrain.gin: -------------------------------------------------------------------------------- 1 | OcMesher.pixels_per_cube = 4 2 | OpaqueSphericalMesher.pixels_per_cube = 0.92 3 | TransparentSphericalMesher.pixels_per_cube = 1.38 4 | 5 | get_surface_type.degrade_sdf_to_displacement = 0 6 | voronoi_grains_chance = 0.5 7 | 8 | execute_tasks.optimize_terrain_diskusage=True -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/performance/reuse_terrain_assets.gin: -------------------------------------------------------------------------------- 1 | Terrain.asset_folder = None 2 | 3 | landtiles.load_assets.on_the_fly_instances = 0 4 | landtiles.load_assets.reused_instances = 5 5 | 6 | upsidedown_mountains.load_assets.on_the_fly_instances = 0 7 | upsidedown_mountains.load_assets.reused_instances = 5 8 | 9 | caves.load_assets.on_the_fly_instances = 0 10 | caves.load_assets.reused_instances = 5 11 | -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/performance/simple.gin: -------------------------------------------------------------------------------- 1 | include 'infinigen_examples/configs_nature/performance/dev.gin' 2 | include 'infinigen_examples/configs_nature/disable_assets/no_creatures.gin' 3 | include 'infinigen_examples/configs_nature/performance/fast_terrain_assets.gin' 4 | run_erosion.n_iters = [1,1] 5 | configure_render_cycles.num_samples = 100 -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/scene_types/canyon.gin: -------------------------------------------------------------------------------- 1 | atmosphere_light_haze.shader_atmosphere.anisotropy = 0 2 | 3 | # scene composition config 4 | LandTiles.tiles = ["Canyons", "Canyon", "Canyons"] 5 | LandTiles.tile_heights = [-4, -4, -4] 6 | LandTiles.randomness = 1 7 | 8 | # camera selection config 9 | keep_cam_pose_proposal.terrain_coverage_range = (0.5, 0.9) 10 | compose_nature.camera_selection_ranges_ratio = { 11 | "altitude": ("altitude", 16, 1e9, 0.01, 1) 12 | } 13 | 14 | compose_nature.ground_creatures_chance = 0.2 15 | compose_nature.ground_creature_registry = [ 16 | (@SnakeFactory, 0.9) 17 | ] 18 | -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/scene_types/cliff.gin: -------------------------------------------------------------------------------- 1 | compose_nature.ground_creature_registry = [ 2 | (@CarnivoreFactory, 0.2), 3 | (@HerbivoreFactory, 1), 4 | (@BirdFactory, 1), 5 | ] 6 | 7 | # scene composition config 8 | LandTiles.tiles = ["Mountain", "Cliff", "Mountain"] 9 | LandTiles.tile_heights = [-15, -15, 10] 10 | LandTiles.tile_density = 1.6 11 | LandTiles.randomness = 1 12 | WarpedRocks.slope_shift=-15 13 | Ground.height = -15 14 | 15 | # camera selection config 16 | Terrain.populated_bounds = (-25, 25, -25, 25, -15, 35) 17 | keep_cam_pose_proposal.terrain_coverage_range = (0, 0.8) 18 | compose_nature.camera_selection_ranges_ratio = { 19 | "altitude": ("altitude", 10, 1e9, 0.01, 1) 20 | } 21 | 22 | compose_nature.flying_creatures_chance=0.6 23 | compose_nature.flying_creature_registry = [ 24 | (@FlyingBirdFactory, 1), 25 | ] -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/scene_types/coral_reef.gin: -------------------------------------------------------------------------------- 1 | include 'infinigen_examples/configs_nature/scene_types/under_water.gin' 2 | 3 | compose_nature.kelp_chance = 0.1 4 | compose_nature.urchin_chance = 0.1 5 | 6 | compose_nature.corals_chance = 1. 7 | compose_nature.seaweed_chance = 0.2 8 | compose_nature.seashell_chance = 0.7 9 | compose_nature.jellyfish_chance = 0.0 10 | 11 | water.geo.with_waves=True -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/scene_types/kelp_forest.gin: -------------------------------------------------------------------------------- 1 | include 'infinigen_examples/configs_nature/scene_types/under_water.gin' 2 | 3 | multi_mountains_params.height = ("uniform", 1, 4) 4 | multi_mountains_params.min_freq = ("uniform", 0.01, 0.015) 5 | multi_mountains_params.max_freq = ("uniform", 0.03, 0.06) 6 | 7 | compose_nature.glowing_rocks_chance = 0. 8 | compose_nature.ground_leaves_chance = 0.2 9 | compose_nature.ground_twigs_chance = 0.4 10 | compose_nature.chopped_trees_chance = 0. 11 | 12 | compose_nature.kelp_chance = 1.0 13 | compose_nature.urchin_chance = 0.7 14 | 15 | compose_nature.corals_chance = 0.0 16 | compose_nature.seaweed_chance = 0.8 17 | compose_nature.seashell_chance = 0.8 18 | compose_nature.jellyfish_chance = 0.0 19 | 20 | water.shader.volume_density = ("uniform", 0.09, 0.13) 21 | water.shader.anisotropy = ("uniform", 0.45, 0.7) 22 | water.geo.with_waves=False 23 | 24 | camera.camera_pose_proposal.pitch = ("clip_gaussian", 90, 15, 60, 140) 25 | -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/scene_types/mountain.gin: -------------------------------------------------------------------------------- 1 | compose_nature.flying_creatures_chance=0.7 2 | compose_nature.max_flying_creatures = 3 3 | 4 | animate_cameras.follow_poi_chance=0.0 5 | 6 | compose_nature.trees_chance = 0.5 7 | compose_nature.tree_density = 0.06 8 | 9 | # scene composition config 10 | scene.upsidedown_mountains_chance = 0.4 11 | WarpedRocks.slope_shift = -3 12 | 13 | water.shader.volume_density = ("uniform", 2, 10) 14 | -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/scene_types/plain.gin: -------------------------------------------------------------------------------- 1 | compose_nature.ground_creature_registry = [ 2 | (@CarnivoreFactory, 1), 3 | (@HerbivoreFactory, 1.5), 4 | (@BirdFactory, 0.7), 5 | ] 6 | 7 | compose_nature.ground_creatures_chance = 0.0 8 | compose_nature.ground_creature_registry = [ 9 | (@CarnivoreFactory, 2), 10 | (@HerbivoreFactory, 0.8), 11 | (@SnakeFactory, 2) 12 | ] 13 | 14 | compose_nature.flying_creatures_chance = 0.7 15 | compose_nature.flying_creature_registry = [ 16 | (@DragonflyFactory, 1), 17 | (@FlyingBirdFactory, 0.1) 18 | ] 19 | 20 | compose_nature.grass_select_max = 0.35 21 | compose_nature.tree_density = 0.02 22 | compose_nature.grass_chance = 1 23 | 24 | compose_nature.bug_swarm_chance=0.0 25 | 26 | # scene composition config 27 | scene.landtiles_chance = 0 28 | scene.warped_rocks_chance = 0 29 | -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/scene_types_fluidsim/simulated_river.gin: -------------------------------------------------------------------------------- 1 | include 'infinigen_examples/configs_nature/scene_types/river.gin' 2 | 3 | UniformMesher.enclosed=1 4 | animate_cameras.policy_registry = @cam/AnimPolicyRandomForwardWalk 5 | cam/AnimPolicyRandomForwardWalk.forward_vec = (0,0,-1) 6 | cam/AnimPolicyRandomForwardWalk.speed = 1 7 | cam/AnimPolicyRandomForwardWalk.step_range = (5, 10) 8 | cam/AnimPolicyRandomForwardWalk.yaw_dist = ("uniform",-10, 10) 9 | 10 | keep_cam_pose_proposal.min_terrain_distance = 1 11 | 12 | compose_nature.hero_boulders_chance = 0.0 13 | compose_nature.simulated_river_enabled = True 14 | 15 | terrain.elements.landtiles.LandTiles.y_tilt = 0 16 | terrain.elements.landtiles.LandTiles.y_tilt_clip = 0 17 | 18 | camera_pose_proposal.override_loc = (0.45, -24, 8) 19 | camera_pose_proposal.pitch = -120 20 | camera_pose_proposal.roll = 180 21 | camera_pose_proposal.yaw = -178 22 | 23 | boulder.create_placeholder.boulder_scale = 1 24 | LandTiles.land_processes = None 25 | 26 | render.hide_water = True 27 | compute_base_views.min_candidates_ratio = 1 28 | walk_same_altitude.ignore_missed_rays = True 29 | 30 | make_river.resolution = 400 31 | make_river.simulation_duration = 250 -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/scene_types_fluidsim/tilted_river.gin: -------------------------------------------------------------------------------- 1 | include 'infinigen_examples/configs_nature/scene_types/river.gin' 2 | 3 | UniformMesher.enclosed=1 4 | animate_cameras.policy_registry = @cam/AnimPolicyRandomForwardWalk 5 | cam/AnimPolicyRandomForwardWalk.forward_vec = (0,0,-1) 6 | cam/AnimPolicyRandomForwardWalk.speed = 1 7 | cam/AnimPolicyRandomForwardWalk.step_range = (5, 10) 8 | cam/AnimPolicyRandomForwardWalk.yaw_dist = ("uniform",-10, 10) 9 | 10 | 11 | keep_cam_pose_proposal.min_terrain_distance = 1 12 | 13 | compose_nature.hero_boulders_chance = 1.0 14 | 15 | terrain.elements.landtiles.LandTiles.y_tilt = 0.7 16 | terrain.elements.landtiles.LandTiles.y_tilt_clip = 11 17 | camera_pose_proposal.location_sample = (0.678843,-30.5532, 11.7858) 18 | #camera_pose_proposal.override_rot = (-110, 180, -178) 19 | camera_pose_proposal.roll = 180 20 | camera_pose_proposal.yaw = -178 21 | camera_pose_proposal.pitch = -110 22 | 23 | compose_nature.tilted_river_enabled = True 24 | 25 | boulder.create_placeholder.boulder_scale = 3 26 | LandTiles.land_processes = None 27 | 28 | render.hide_water = True 29 | compute_base_views.min_candidates_ratio = 1 30 | walk_same_altitude.ignore_missed_rays = True -------------------------------------------------------------------------------- /infinigen_examples/configs_nature/trailer_video.gin: -------------------------------------------------------------------------------- 1 | fine_terrain.mesher_backend = "OcMesher" 2 | AnimPolicyRandomWalkLookaround.speed = ('uniform', 0.5, 1) 3 | AnimPolicyRandomWalkLookaround.step_speed_mult = 1 4 | AnimPolicyRandomWalkLookaround.yaw_sampler = ('uniform',-20, 20) 5 | AnimPolicyRandomWalkLookaround.step_range = ('clip_gaussian', 7, 5, 4, 10) 6 | AnimPolicyRandomWalkLookaround.rot_vars = (5, 0, 5) 7 | AnimPolicyRandomWalkLookaround.motion_dir_zoff = ('clip_gaussian', 0, 100, 0, 180) 8 | 9 | -------------------------------------------------------------------------------- /scripts/indoor.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | for s in $(seq 0 20) 5 | do 6 | python -m infinigen_examples.generate_indoors --output_folder outputs/room_${s} -s ${s} -g base disable/no_objects -t coarse 7 | python -m infinigen_examples.generate_indoors --input_folder outputs/room_${s} --output_folder outputs/room_${s}/frames -s ${s} -g base disable/no_objects -t render 8 | done 9 | -------------------------------------------------------------------------------- /scripts/install/compile_flip_fluids.sh: -------------------------------------------------------------------------------- 1 | OS=$(uname -s) 2 | 3 | BLENDER_ADDONS=$(python -c "import bpy; from addon_utils import paths; print(paths()[0])") 4 | 5 | FLIP_FLUIDS="https://github.com/rlguy/Blender-FLIP-Fluids" 6 | FLIP_FLUIDS_FOLDER="Blender-FLIP-Fluids" 7 | FLIP_FLUIDS_ADDON_FOLDER="${FLIP_FLUIDS_FOLDER}/build/bl_flip_fluids/flip_fluids_addon" 8 | 9 | if [ ! -d "${FLIP_FLUIDS_ADDON_FOLDER}" ]; then 10 | git clone "${FLIP_FLUIDS}" 11 | cd "${FLIP_FLUIDS_FOLDER}" 12 | python build.py 13 | cd - 14 | fi 15 | 16 | echo "Installing Flip Fluids into $BLENDER_ADDONS" 17 | cp -r "${FLIP_FLUIDS_ADDON_FOLDER}" "${BLENDER_ADDONS}" 18 | python ./infinigen/assets/fluid/flip_init.py -------------------------------------------------------------------------------- /scripts/install/compile_opengl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | cd ./infinigen/datagen/customgt 6 | 7 | cmake -S . -Bbuild -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_BUILD_TYPE=Release 8 | cmake --build build --target all 9 | ./build/customgt -in x -dst_in x -out x --frame 0 --dst_frame 0 10 | if [ $? -eq 0 ]; then 11 | echo "OpenGL/EGL ground truth is working." 12 | else 13 | echo "WARNING: OpenGL/EGL is not supported on this machine. If you are running from a cluster head-node, this is likely not an issue." 14 | fi 15 | cd - 16 | -------------------------------------------------------------------------------- /scripts/launch/hello_world.sh: -------------------------------------------------------------------------------- 1 | python -m infinigen.datagen.manage_jobs --output_folder outputs/hello_world --num_scenes 1 --specific_seed 0 \ 2 | --configs desert.gin simple.gin --pipeline_configs local_16GB.gin monocular.gin blender_gt.gin --pipeline_overrides LocalScheduleHandler.use_gpu=False \ 3 | $@ 4 | -------------------------------------------------------------------------------- /scripts/launch/hello_world_stepbystep.sh: -------------------------------------------------------------------------------- 1 | # Generate a scene layout 2 | python -m infinigen_examples.generate_nature --seed 0 --task coarse -g desert.gin simple.gin --output_folder outputs/helloworld/coarse 3 | 4 | # Populate unique assets 5 | python -m infinigen_examples.generate_nature --seed 0 --task populate fine_terrain -g desert.gin simple.gin --input_folder outputs/helloworld/coarse --output_folder outputs/helloworld/fine 6 | 7 | # Render RGB images 8 | python -m infinigen_examples.generate_nature --seed 0 --task render -g desert.gin simple.gin --input_folder outputs/helloworld/fine --output_folder outputs/helloworld/frames 9 | 10 | # Render again for accurate ground-truth 11 | python -m infinigen_examples.generate_nature --seed 0 --task render -g desert.gin simple.gin --input_folder outputs/helloworld/fine --output_folder outputs/helloworld/frames -p render.render_image_func=@flat/render_image -------------------------------------------------------------------------------- /tests/assets/list_displaced_materials.txt: -------------------------------------------------------------------------------- 1 | infinigen.assets.materials.fabrics.fabric 2 | infinigen.assets.materials.fabrics.leather 3 | infinigen.assets.materials.metal.grained_and_polished_metal 4 | infinigen.assets.materials.metal.hammered_metal 5 | infinigen.assets.materials.stone_and_concrete.concrete 6 | infinigen.assets.materials.woods.tiled_wood 7 | infinigen.assets.materials.plastics.plastic_rough 8 | -------------------------------------------------------------------------------- /tests/assets/list_scatters.txt: -------------------------------------------------------------------------------- 1 | # infinigen.assets.scatters.coral_reef # too slow for unit tests 2 | # infinigen.assets.scatters.chopped_trees # too slow for unit tests 3 | # infinigen.assets.scatters.ground_mushroom # too slow for unit tests 4 | infinigen.assets.scatters.clothes 5 | infinigen.assets.scatters.decorative_plants 6 | infinigen.assets.scatters.fern 7 | infinigen.assets.scatters.flowerplant 8 | infinigen.assets.scatters.grass 9 | infinigen.assets.scatters.ground_leaves 10 | infinigen.assets.scatters.ground_twigs 11 | infinigen.assets.scatters.ivy 12 | infinigen.assets.scatters.jellyfish 13 | infinigen.assets.scatters.lichen 14 | infinigen.assets.scatters.mollusk 15 | infinigen.assets.scatters.monocots 16 | infinigen.assets.scatters.moss 17 | infinigen.assets.scatters.mushroom 18 | infinigen.assets.scatters.pebbles 19 | infinigen.assets.scatters.pine_needle 20 | infinigen.assets.scatters.pinecone 21 | infinigen.assets.scatters.seashells 22 | infinigen.assets.scatters.seaweed 23 | infinigen.assets.scatters.slime_mold 24 | infinigen.assets.scatters.snow_layer 25 | infinigen.assets.scatters.urchin 26 | -------------------------------------------------------------------------------- /tests/assets/test_scatters_basic.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2023, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory 3 | # of this source tree. 4 | 5 | # Authors: Alexander Raistrick 6 | 7 | import pytest 8 | 9 | from infinigen.core.init import configure_blender 10 | from infinigen.core.util import blender as butil 11 | from infinigen.core.util.test_utils import import_item, load_txt_list, setup_gin 12 | 13 | 14 | def check_scatter_runs(pathspec): 15 | butil.clear_scene() 16 | base_cube = butil.spawn_cube() 17 | 18 | scatter = import_item(pathspec) 19 | scatter.apply(base_cube) 20 | 21 | 22 | @pytest.mark.parametrize("pathspec", load_txt_list("tests/assets/list_scatters.txt")) 23 | def test_scatter_runs(pathspec, **kwargs): 24 | setup_gin("infinigen_examples/configs_nature", ["base_nature.gin"]) 25 | configure_blender() 26 | check_scatter_runs(pathspec) 27 | -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory of this source tree. 3 | 4 | # Authors: Vineet Bansal 5 | 6 | import bpy 7 | import gin 8 | import pytest 9 | 10 | 11 | @pytest.fixture(scope="function", autouse=True) 12 | def cleanup(): 13 | yield 14 | gin.clear_config() 15 | bpy.ops.wm.read_factory_settings(use_empty=True) 16 | -------------------------------------------------------------------------------- /tests/constraints/test_tags.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory 3 | # of this source tree. 4 | 5 | # Authors: Alexander Raistrick 6 | 7 | from infinigen.core import tags as t 8 | 9 | 10 | def test_implies(): 11 | assert t.implies(set(), set()) 12 | assert t.implies({t.Subpart.Wall}, {t.Subpart.Wall}) 13 | assert t.implies({t.Subpart.Wall}, set()) 14 | 15 | assert t.implies({t.Semantics.Room, t.Variable("room")}, {t.Semantics.Room}) 16 | -------------------------------------------------------------------------------- /tests/core/test_execute_tasks.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory 3 | # of this source tree. 4 | 5 | # Authors: Alexander Raistrick 6 | 7 | from pathlib import Path 8 | 9 | import bpy 10 | 11 | from infinigen.core import execute_tasks 12 | from infinigen.core.placement import camera 13 | from infinigen.core.util.test_utils import setup_gin 14 | 15 | 16 | def test_compose_cube(): 17 | setup_gin("infinigen_examples/configs_nature", configs=["base_nature.gin"]) 18 | 19 | def compose_cube(output_folder, scene_seed, **params): 20 | camera.spawn_camera_rigs() 21 | bpy.ops.mesh.primitive_cube_add() 22 | 23 | output = Path("/tmp/test_compose_cube") 24 | output.mkdir(exist_ok=True) 25 | 26 | execute_tasks.execute_tasks( 27 | compose_cube, 28 | populate_scene_func=None, 29 | input_folder=None, 30 | output_folder=output, 31 | task="coarse populate", 32 | scene_seed=0, 33 | frame_range=[0, 100], 34 | camera_id=(0, 0), 35 | ) 36 | -------------------------------------------------------------------------------- /tests/integration/run_tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cwd=$(pwd) 3 | cd ../.. 4 | python -m infinigen.datagen.manage_jobs --output_folder "$1" \ 5 | --num_scenes "$2" --pipeline_configs slurm monocular cuda_terrain gt_test \ 6 | --pipeline_overrides LocalScheduleHandler.use_gpu=True 7 | 8 | cd - 9 | cd "$1" && mkdir -p test_results 10 | 11 | cd - 12 | python manual_integration_check.py --dir "$1" --num "$2" --time "$3" >| "$1/test_results/logs.log" 13 | -------------------------------------------------------------------------------- /tests/list_displaced_materials.txt: -------------------------------------------------------------------------------- 1 | infinigen.assets.materials.fabrics.fabric 2 | infinigen.assets.materials.fabrics.leather 3 | infinigen.assets.materials.metal.grained_and_polished_metal 4 | infinigen.assets.materials.metal.hammered_metal 5 | infinigen.assets.materials.stone_and_concrete.concrete 6 | infinigen.assets.materials.woods.tiled_wood 7 | infinigen.assets.materials.plastics.plastic_rough 8 | -------------------------------------------------------------------------------- /tests/solver/test_state_def.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024, Princeton University. 2 | # This source code is licensed under the BSD 3-Clause license found in the LICENSE file in the root directory 3 | # of this source tree. 4 | 5 | # Authors: Alexander Raistrick 6 | 7 | import json 8 | 9 | # import pytest 10 | from mathutils import Vector 11 | from test_stable_against import make_scene 12 | 13 | 14 | def test_state_to_json(tmp_path): 15 | state = make_scene(Vector((1, 0, 0))) 16 | 17 | path = tmp_path / "state.json" 18 | state.to_json(path) 19 | 20 | with path.open() as json_file: 21 | state_json = json.load(json_file) 22 | 23 | assert sorted(list(state_json["objs"].keys())) == ["cup", "table"] 24 | assert len(state_json["objs"]["cup"]["relations"]) == 1 25 | --------------------------------------------------------------------------------