Thursday, July 13th, 2023 Posted by Jim Thacker

Infinigen: a free generator for procedural 3D environments

Researchers at Princeton Vision & Learning Lab have released Infinigen, an intriguing free tool for generating procedural 3D environments, including terrain, plants and creatures.

The software, which is available to compile from source, is based on Blender, and so should export be able to assets in any format that Blender can, for use in other DCC applications or game engines.

Generate 3D terrain, plants and creatures based on a set of procedural rules
Developed as part of the research paper Infinite Photorealistic Worlds using Procedural Generation, Infinigen generates 3D environments procedurally using “Math rules only. Zero AI. Just graphics.”

It modifies Blender primitives into environment assets via a library of procedural rules, organised into readymade generators for different asset types.

There are generators for terrain, plants (and plant-like underwater objects like coral), and even creatures, including carnivores, herbivores, birds, beetles and fish.

According to the paper, the system produces “high-quality” animation rigs, and can generate hair and fur, with grooming handled automatically. It can also simulate skin folding and creasing, using cloth simulation.

There are 50 procedural material generators for generating textures.

A random sample of environments generated with Infinigen.

Combine generated assets into complete 3D environments, from mountains to oceans
Infinigen includes scatter generators, distributing assets over terrain to create complete 3D environments.

Environment types shown in the paper range from mountains, rivers, coasts, plains, forests and deserts to underwater scenes, caves and even icebergs and floating islands.

The system simulates dynamic water using FLIP simulation, sun and sky lighting using the Nishita sky model implemented in Blender, and weather effects using Blender’s particle system.

Generates 3D geometry and supporting render and data passes
Environments are generated as full geometry – the system doesn’t ‘fake’ details using billboard textures, or even bump or normal mapping – so they will probably need optimisation for use in entertainment work.

It should be possible to export the data in any format that Blender supports, including FBX, Alembic and USD, for use in other DCC applications or game engines.

Infigen can generate a range of render passes, including depth, surface normals, and Cryptomatte-style ‘panoptic segmentation’, and data passes like optical flow and 3D scene flow.

An integrated transpiler can also convert the underlying Blender node graph into Python code.

Controlled from the command line, and may take a while to process
According to the instructions in the GitHub repository, generating environments is done from the command line, controlling the type of environment generated with flags.

The software is benchmarked on a fairly high-end system with two Intel Xeon Silver 4114 server CPUs and a Nvidia GPU, so the process may take a while to complete.

The standard test commands shown on GitHub take “approximately 10 minutes and 16GB of memory to execute on an M1 Mac”.

Currently mainly a research tool, but is intended to grow in future
In its initial release, Infinigen is primarily intended as a resource for computer vision research.

However, the researchers say that “in future work, we intend to make Infinigen a living project … through open-source collaboration with the whole community”.

You can find out how to contribute on the project website, and planned features in the online roadmap.

In the immediate future, code for water, fire and smoke simulations – not included in the initial release – is due in “mid July”.

In the longer term, it may also be possible to generate cities: the researchers expect the system to expand from natural environments to built environments and artificial objects.

Licence and system requirements
Infinigen is available under a 3-Clause BSD licence. At the minute, the GitHub repository doesn’t provide compiled binaries, so you will need to compile it from source.

The software has been tested on Ubuntu 22.04 Linux and macOS 12+. It currently requires an Apple Silicon or Nvidia GPU, but support for AMD GPUs is planned.

Windows users are advised to use WSL to set up an Ubuntu terminal environments on a Windows machine. WSL is compatible with Windows 10+.

Read more about Infinigen on the project website

Download the source code of Infigen from GitHub

Editor’s note: We haven’t yet tried compiling Infigen ourselves, so be prepared to experiment!