ProcFunc: Function-Oriented Abstractions for Procedural 3D Generation in Python

2026-04-29Computer Vision and Pattern Recognition

Computer Vision and Pattern Recognition
AI summary

The authors created ProcFunc, a set of Python tools that work with Blender to help make 3D models more easily and quickly using code. Their library helps combine different parts and materials to make complex 3D scenes, especially for training AI models. They show how this can make varied 3D data, like detailed indoor rooms, without many coding mistakes. They also provide the source code online for others to use.

procedural generationBlenderPython3D modelingsynthetic datacompositional materialsvisual language modelsindoor scene generation
Authors
Alexander Raistrick, Karhan Kayan, Jack Nugent, David Yan, Lingjie Mei, Meenal Parakh, Hongyu Wen, Dylan Li, Yiming Zuo, Erich Liang, Jia Deng
Abstract
We introduce ProcFunc, a library for Blender-based procedural 3D generation in Python. ProcFunc provides a library of easy-to-use Python functions, which streamline creating, combining, analyzing, and executing procedural generation code. ProcFunc makes it easy to create large-scale diverse training data, by combinatorial compositions of semantic components. VLMs can use ProcFunc to edit procedural material and geometry code and can create new procedural code with significantly fewer coding errors. Finally, as an example use case, we use ProcFunc to develop a new procedural generator of indoor rooms, which includes a collection of new compositional procedural materials. We demonstrate the detail, runtime efficiency, and diversity of this room generator, as well as its use for 3D synthetic data generation. Please visit https://github.com/princeton-vl/procfunc for source code.