Infinigen v2.0.0a3|普林斯顿出品的程序化 3D 场景生成器:253 个生成器、真几何不用法线贴图糊、深度/法线/光流/分割标注全自动,BSD 免费开源

📦 资产下载Infinigen v2.0.0a3|原包 Infinigen_v2.0.0a3.rar(60,718,321 B,含 Infinigen 1.0 与 2.0 两代引擎)+ 中文说明(12KB:不是插件的警告、两种安装形态、四种核心特性、1.0/2.0 版本差异、253 个生成器分类、平台支持表、五条安装路径、第一批命令示例、21 篇包内文档索引、授权)
Infinigen——普林斯顿视觉与学习实验室出品的程序化 3D 场景生成器官方产品图

★ 先说最要紧的一条:这不是 Blender 插件,装不进去。别在 Preferences → Add-ons 里 Install from Disk,会报错。Infinigen 是一个独立的 Python 程序包加命令行工具,它把 Blender(bpy 模块)当成渲染内核来调用。属于「跑脚本生成场景」这一类,不是「装进 Blender 点面板」那一类。包里的中文说明第五节写了三种正确用法。

它是谁的、干什么的:普林斯顿视觉与学习实验室(Princeton Vision & Learning Lab)做的程序化 3D 场景生成器,目标用户是计算机视觉与机器人研究者。他们需要海量带精确标注的 3D 数据来训练模型,而真实数据拍不起也标不起——Infinigen 的解法是用随机化的数学规则把场景「算」出来。

这里有个关键推论:既然场景是算出来的,标注就是白送的。每个像素对应的深度、表面法线、光流、3D 场景流、全景分割、遮挡边界,全都是精确的而不是估的。这是它相对「拍真实照片再人工标注」的根本优势,也是这个项目存在的理由。

第二个狠点是「真几何」。官方原文写得很硬:Infinigen does not use bump/normal-maps, full-transparency, or other techniques which fake geometric detail. All fine details of geometry from Infinigen are real.——它不用凹凸贴图、法线贴图、半透明这些假装细节的手段,所有几何细节都是真的。官网专门用「Fake Geometry / Real Geometry」对比图强调这一点。为什么这条重要?因为贴图糊出来的细节在深度和法线标注里是不存在的,用这种数据训出来的模型,几何理解是虚的。

四个核心特性(官方逐条):Procedural——一切由随机化数学规则生成,含所有形状与材质,从宏观到微观,参数可覆盖所以变体无限;Diverse——覆盖自然界的植物、动物、地形,以及火、云、雨、雪等自然现象(官方解释偏重自然场景的原因:哺乳动物的视觉是在自然世界里演化出来的);Real Geometry——如上;Automatic Annotations——光流、3D 场景流、深度、表面法线、全景分割、遮挡边界全自动,且因为渲染过程对用户开放,标注可以自定义。

这个包同时装着两代引擎,这点必须说清。实测两个版本号:src/infinigen2/__init__.py 是 2.0.0a3,src/infinigen/__init__.py 是 1.19.1。2.0 是自上而下的重写,目标是为所有资产生成器提供简单可控的 API,建在 procfunc 之上(把程序化生成器拆成小的可随机化积木再组合的库)。但官方明确说 2.0 目前是预览版,只含新的高质量室内材质、一小部分室内物体、简单的室内房间排布。要跑完整的自然场景(森林、地形、植被)走的是 1.0 管线,它需要额外依赖与原生编译(terrain、marching_cubes 扩展、git 子模块),默认的 2.0 安装不含。

包内规模实测:解压后 1,728 个文件 / 81,466,798 B,其中 1,171 个 .py。src/infinigen2/manifest.json 里有 253 个生成器:物体 94、材质 66、场景 46、遮罩 18、导出器 10、相机 6、环境 5、置换 4、材质叠加 4。这份 manifest 就是 --list 打印的东西,也是你能用的资产全集。

平台支持要看清(官方 Installation 文档的表):Linux 与 macOS(Intel/ARM 都行)支持完整;Windows 是试验性——而且 Terrain (CPU) 这一项在 Windows 上不支持,也就是说Windows 上基本只能用 Minimal Install 生成单个物体与材质,出不了完整场景。要出完整场景请用 Linux 或 WSL2。流体仿真(火、水)只有 Linux 支持得比较好。

授权是最宽松的那一档:BSD 3-Clause,免费开源,Copyright (c) 2023, Princeton University。商业与非商业都能用,保留版权声明与许可条款即可。它背后有四篇论文:CVPR 2023 的 Infinigen、CVPR 2024 的 Infinigen Indoors、2025 年的 Infinigen Articulated(arXiv:2505.10755),以及 ProcFunc(arXiv:2604.26943)。

一、安装:五条路,按需要挑一条

【A. Python 包 · Minimal 安装(最省事,建议先试这个)】Minimal Install 不编译任何 C++、不装 landlab 那类常出问题的依赖,适合生成单个物体与室内场景:

curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv --python 3.11
uv pip install "infinigen==2.0.0a3"

也可以用包内源码装:cd infinigen-2.0.0a3 && INFINIGEN_MINIMAL_INSTALL=True uv pip install -e .

【B. 完整开发安装(要地形等原生特性)】
cd infinigen-2.0.0a3 → uv pip install -e ".[dev,terrain,vis]"

【C. 装进 Blender 自带的 Python(想在界面里交互用就选这个)】
先做上面的常规安装,然后在 Linux / Mac / WSL 上跑:
INFINIGEN_MINIMAL_INSTALL=True bash scripts/install/interactive_blender.sh
装完用它的启动器打开界面:python -m infinigen.launch_blender
★ 注意:文档里凡是 python -m <模块> <参数> 的命令,在这种形态下要改成 python -m infinigen.launch_blender -m <模块> -- <参数>。

【D. Docker(Linux 最干净)】
make docker-build → make docker-setup → make docker-run
要 CUDA 编译用 make docker-build-cuda;无 GPU 用 docker-run-no-gpu;无 OpenGL 用 docker-run-no-opengl。

【E. 1.0 传统安装(要跑自然场景 / Hello World 森林才需要)】
conda create --name infinigen python=3.11 → conda activate infinigen →
INFINIGEN_MINIMAL_INSTALL=False INFINIGEN_INSTALL_TERRAIN=True pip install -e ".[infinigen1]"
想额外编译 OpenGL 标注器再加 INFINIGEN_INSTALL_CUSTOMGT=True。

前置依赖(Linux/Mac)需要 wget、cmake、编译工具链以及 GL 相关库;Mac ARM 用 arch -arm64 brew install wget cmake llvm open-mpi libomp glm glew zlib,Ubuntu 用 sudo apt-get install wget cmake g++ libgles2-mesa-dev libglew-dev libglfw3-dev libglm-dev zlib1g-dev。没有 sudo 权限时可以用 conda 装这套工具链(官方给了完整命令)。

二、跑出第一张图(2.0 一行命令)

2.0 的用法很直观:uv run infinigen <生成器1> <生成器2> ...,系统会自动把前一步的输出接到后一步的输入上(比如把生成出来的材质接到渲染器的 material 参数上)。先看有哪些可用:

uv run infinigen --list(全部 253 个)
uv run infinigen --list Scene(只看场景类)

官方示例,照抄即可:
uv run infinigen bricks_rand material_torus_uv render_cycles --seed 0 砖块材质贴在环面上
uv run infinigen metal_scratched_rand material_cube render_cycles --seed 0 划痕金属贴在立方体上
uv run infinigen fabric_patterned_rand material_monkey render_cycles --seed 0 图案织物贴在猴头上
uv run infinigen sofa_rand object_demo render_cycles --seed 0 程序化沙发
uv run infinigen room_livingroom_rand render_cycles --seed 0 客厅(换 seed 就是另一个房间)

★ --seed 是同一场景可复现的关键:同一个种子出同一个场景,换个种子就是新场景。这是它能做「数据集」的原因——你需要的那一份永远能再算出来。

带真值标注一起渲:
uv run infinigen bricks_rand material_torus_uv render_cycles render_cycles_ground_truth visualize_gt --passes rgb surface-normal depth

批量生成(多进程跑,-P 调并行数):
seq 4 | xargs -P 1 -t -I{} uv run --no-sync python -m infinigen2.generate bricks_rand material_torus_uv render_cycles --seed {} --output outputs/bricks/{} --quiet | ./scripts/image-grid.py 4x render.png -o

追踪执行过程(生成代码或统计):
uv run infinigen bricks_rand material_torus_uv render_cycles --trace codegen 输出生成器的代码
uv run infinigen bricks_rand --trace codestats 输出统计
uv run infinigen bricks_rand --trace codestats --trace_level RANDOM_CONTROL 更细粒度

三、1.0 的 Hello World(要跑森林/地形走这条)

官方说明:这些命令在 M1 Mac 或 Linux 桌面上约需 10 分钟、16GB 内存。总共四步——先出场景布局,再填充资产,再渲染 RGB,最后为了更准的真值再渲一遍。

mkdir outputs

1)生成场景布局
python -m infinigen_examples.generate_nature --seed 0 --task coarse -g desert.gin simple.gin --output_folder outputs/hello_world/coarse

2)填充独有资产
python -m infinigen_examples.generate_nature --seed 0 --task populate fine_terrain -g desert.gin simple.gin --input_folder outputs/hello_world/coarse --output_folder outputs/hello_world/fine

3)渲染 RGB
python -m infinigen_examples.generate_nature --seed 0 --task render -g desert.gin simple.gin --input_folder outputs/hello_world/fine --output_folder outputs/hello_world/frames

4)再渲一遍拿更准的真值(末尾多一个参数)
... -p render.render_image_func=@flat/render_image

一条命令搞定的版本(用 datagen 的任务管理器,会自动跑完这些步骤):
python -m infinigen.datagen.manage_jobs --output_folder outputs/hello_world --num_scenes 1 --specific_seed 0 --configs desert.gin simple.gin --pipeline_configs local_16GB.gin monocular.gin blender_gt.gin --pipeline_overrides LocalScheduleHandler.use_gpu=False

它会反复打印各阶段状态;底层任务的完整日志在 outputs/hello_world/1/logs。加 --debug 能看到更细的输出。

★ 官方注明一个已知问题:目前在很多平台上可复现性还没修好——同一条命令可能产出排布不同、运行时间与内存需求也不同的场景。这是官方正在修的问题,不是你的环境坏了。

另外注意:默认很多网格是隐藏的(为了视口稳定),想看全请在 Blender 里点 Render 或用界面取消隐藏。

四、导出到机器人仿真器(MJCF / URDF / USD)

如果目标是具身智能或机器人仿真,Infinigen 能把带关节的资产直接导成仿真格式:

./scripts/spawn_sim_ready_asset.sh {资产名} {实例数} {mjcf/urdf/usd}

官方示例(各生成 10 个实例):
./scripts/spawn_sim_ready_asset.sh door 10 mjcf
./scripts/spawn_sim_ready_asset.sh dishwasher 10 mjcf
./scripts/spawn_sim_ready_asset.sh lamp 10 mjcf
./scripts/spawn_sim_ready_asset.sh multifridge 10 mjcf
./scripts/spawn_sim_ready_asset.sh multidoublefridge 10 mjcf
./scripts/spawn_sim_ready_asset.sh toaster 10 mjcf

可用的带关节资产清单见 infinigen/assets/sim_objects/mapping.py 里的 OBJECT_CLASS_MAP,每个键对应一个带关节资产。注意 singlefridge 与 doublefridge 是给 multifridge / multidoublefridge 内部用的,不要单独拿来生成。

整屋场景导出并在 IsaacSim 里跑:官方说明整场景导出器输出的 .usd 不含关节,且只验证过室内场景在 IsaacSim 下的兼容性(自然场景与其它仿真器未测)。步骤见包内 docs/source/ExportingToSimulators.md。

五、这版(v2.0.0a3)新增了什么

场景方面:新增客厅、餐厅、卧室、浴室、厨房作为顶层场景生成器;新增床、浴室、书桌、餐桌、茶几、沙发、壁柜、厨房的场景排布;把 1.0 的房屋布局重构成 2.0 的三到八房间带家具住宅;新增室内网格场景(收纳、书桌、椅子、沙发、餐桌、茶几);新增独立墙面场景(窗、画墙、板架、储物架、格子柜、通顶窗、门);家具排布加入防碰撞的旋转变化;新增穿过三个以上相连房间的避碰相机漫游。

物体方面:新增各种床(床架、床头板、床尾板、床垫、储物床、枕头、床头家具);把 1.0 的洗手池、水龙头、浴缸、马桶、壁挂卫浴五金重构进 2.0;储物家具扩展出敞开式、抽屉式、单门、双门、玻璃门,以及带腿抬高的柜体;书桌扩展成平板式、内嵌储物、台面储物、侧储物;餐桌与边桌扩展出圆桌、储物式茶几与边桌、长凳、新餐椅变体;沙发加入真实比例、组合式排布、抬高地台、多样扶手、滚边坐垫与抱枕;落地灯、吸顶灯、台灯扩展出经典款、花瓶形、直腿、柱基、方形底座;1.0 的植物重构为单叶、阔叶、银杏、枫叶生成器与叶序植物、苗圃级盆栽;容器生成器改为可出带棱与扭转的碗与杯;新增峡谷、悬崖、台地、山、河流、火山地形生成器;新增抽象、花椰菜状、结晶、板石、脊状、天然巨石;窗扩展出圆角与矩形框、配套墙洞、窗帘与百叶;门扩展出把手、玻璃面板、双开门变体;把 1.0 的电视与显示器生成器重构进 2.0。

还有 Infinigen-Sim 初版发布:能生成带关节的门、烤面包机、台灯、冰箱、洗碗机,并导出 USD / MJCF / URDF 三种带关节格式。

包内实测清单:解压后顶层是 Infinigen_v2.0.0a3/infinigen-2.0.0a3/,含 Dockerfile / LICENSE / MANIFEST.in / Makefile / README.md / docs/ / examples/ / pyproject.toml / scripts/ / setup.py / src/ / tests/ / uv.lock。共 1,728 个文件 / 81,466,798 B,其中 .py 1,171 个、.ttf 105、.gin 73(配置模板)、.png 50、.h 43、.cpp 38、.md 36、.npy 30。src/ 下三个包:infinigen(1.0 引擎)、infinigen2(2.0 引擎)、infinigen_examples(示例管线)。

253 个生成器的分类统计(实测 manifest.json):Object 94 / Material 66 / Scene 46 / Mask 18 / Exporter 10 / Cameras 6 / Environment 5 / Displacement 4 / MaterialOverlay 4。Exporter 里包含 render_cycles、render_cycles_ground_truth、render_validity_check、render_eevee、render_eevee_ground_truth 等。

三个完整示例工程(examples/):
clay_orbit/ —— 客厅线性摇镜,分 clay-flat(无置换)/ clay(带置换)/ rgb(完整材质)三遍渲染,并输出 depth / surface-normal / object-index / optical-flow 四套真值。脚本里默认 --scene_type livingroom、--camera_type linear、--frames 0 35、--resolution 1280 720,clay 用 256 采样、rgb 用 8192 采样 + OpenImageDenoise 降噪;还支持 --scene_type 切 diningroom / bedroom / bathroom / kitchen / indoor_space,--camera_type orbit 换环绕相机,--render_frames 做帧分片(相机轨迹仍跨整个帧范围,所以每片渲的是同一段摇镜的正确切片)。
house_tour/ —— 整屋漫游,build 与 render 两个 sbatch 脚本(面向 SLURM 集群)。
flying_indoor/ —— 室内飞行穿越,render.py + cvdpack.json。

scripts/ 目录清单:install/(安装脚本,含 interactive_blender.sh)、integration_v1、integration_v2、spawn_asset.py、spawn_sim_ready_asset.sh、transpile_sim.py、transpile_sim_ready_asset.sh、transpile_v1_to_v2.py(把 1.0 资产转成 2.0 格式)、visualize_gt.py、view_trace_graph.py、image-grid.py、repeat_sbatch.sh、wandb_watch_run.py、cvdpack_infinigen2.json。其中 transpile_v1_to_v2.py 与 --trace codegen 是把 Blender 节点图转成 procfunc 生成器的工具(开发向)。

依赖实测(pyproject.toml):name infinigen、license BSD-3-Clause、build-backend setuptools、requires-python ==3.11.*(必须 3.11)。运行依赖:bpy==4.2.0(直接 pip 装 Blender 的 Python 模块)、procfunc>=0.37.0,<0.38、imageio>=2.31、matplotlib>=3.6、numpy>=1.25,<2(numpy 2.x 不行,有上限)、opencv-python>=4.7、pandas>=1.5、scipy>=1.10、trimesh>=3.22、shapely>=2,<3、OpenEXR>=3.2.3、pillow>=11.3.0。构建期需要 setuptools、numpy、Cython。

安装环境变量(setup.py 实测):INFINIGEN_MINIMAL_INSTALL(默认 True,最小安装不编译 C++)、INFINIGEN_INSTALL_TERRAIN(默认 True,构建地形)、INFINIGEN_INSTALL_CUSTOMGT(默认 False,构建 OpenGL 自定义真值标注器,需要原生编译)、INFINIGEN_INSTALL_BNURBS(默认 False)。也可以直接修改 setup.py 顶部这几个开关。

包内文档(docs/source/ 共 21 篇):Installation.md(安装)、HelloWorld.md(1.0 第一个场景分步)、HelloRoom.md(Infinigen Indoors Hello Room)、Infinigen1.md / Infinigen2.md(两代使用说明,2.0 那篇带官方示例清单)、ExampleProjects.md、cli.md(命令行入口)、ConfiguringInfinigen.md、ConfiguringCameras.md、GroundTruthAnnotations.md(真值标注)、ExportingToExternalFileFormats.md、ExportingToSimulators.md(MJCF/URDF/USD、IsaacSim)、GeneratingIndividualAssets.md、GeneratingFluidSimulations.md(火与水)、ImplementingAssets.md(自己写生成器)、UsingJointNodes.md(关节节点)、VerifyingSimAssets.md、VisualizingArticulatedAssets.md、StaticAssets.md、PreGeneratedData.md(预生成数据)、CHANGELOG.md。

官方四篇论文(官网 Research Papers):① Infinigen: Infinite Photorealistic Worlds using Procedural Generation,Raistrick / Lipson / Ma 等,CVPR 2023;② Infinigen Indoors: Photorealistic Indoor Scenes using Procedural Generation,Raistrick / Mei / Kayan 等,CVPR 2024;③ Infinigen Articulated: Procedural Generation of Articulated Simulation-Ready Assets,Joshi / Han / Nugent 等,2025,arXiv:2505.10755;④ ProcFunc: Function-Oriented Abstractions for Procedural 3D Generation in Python,arXiv:2604.26943。官网页脚版权为 © 2026 Infinigen。

本站目录内容:Infinigen_v2.0.0a3.rar(60,718,321 B,原包未改动)+ README-中文.txt(18,262 B:不是插件的警告、两种安装形态怎么选、四个核心特性、1.0/2.0 版本差异、253 个生成器分类统计、平台支持表、五条安装路径、第一批命令示例、21 篇包内文档索引、授权与论文引用)+ cover.jpg(107,543 B,940×530,来自官网),合计 3 文件 / 60,844,126 B,夸克分享目录已逐字节核对一致。

站点查重:「Infinigen」关键词查询站点无重复(NOTHING),本条为新增文章。

原产品页:https://infinigen.org/

封面图片来自作者官方产品页。本文为中文整理,功能与兼容性信息以作者官方页面与包内说明为准。资源仅供学习交流,商业使用请购买正版授权。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容