Files
20260327-3d/index.html
2026-04-01 09:04:08 +08:00

970 lines
39 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>3D 场景生成 — 开源复现计划</title>
<style>
:root {
--bg: #08080f;
--bg2: #0e0e1a;
--bg3: #161628;
--accent: #6366f1;
--accent2: #06b6d4;
--accent3: #f43f5e;
--accent4: #10b981;
--accent5: #f59e0b;
--text: #e2e4f0;
--text2: #8890b0;
--border: #1e2040;
--glow: 0 0 30px rgba(99, 102, 241, 0.15);
--card: rgba(14, 14, 26, 0.8);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
background: var(--bg);
color: var(--text);
line-height: 1.7;
overflow-x: hidden;
}
/* ===== i18n ===== */
body.lang-en .zh { display: none !important; }
body.lang-zh .en { display: none !important; }
.lang-toggle {
position: fixed;
top: 1.5rem;
right: 1.5rem;
z-index: 999;
display: flex;
border: 1px solid var(--border);
border-radius: 8px;
overflow: hidden;
background: var(--bg2);
backdrop-filter: blur(12px);
}
.lang-toggle button {
padding: 0.4rem 0.8rem;
border: none;
background: transparent;
color: var(--text2);
font-size: 0.8rem;
font-weight: 600;
cursor: pointer;
transition: all 0.2s;
}
.lang-toggle button.active {
background: var(--accent);
color: #fff;
}
.lang-toggle button:hover:not(.active) {
background: rgba(99, 102, 241, 0.15);
}
/* ===== Hero ===== */
.hero {
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 2rem;
position: relative;
overflow: hidden;
}
.hero::before {
content: '';
position: absolute;
inset: 0;
background:
radial-gradient(ellipse at 30% 40%, rgba(99, 102, 241, 0.12) 0%, transparent 55%),
radial-gradient(ellipse at 70% 60%, rgba(6, 182, 212, 0.1) 0%, transparent 55%),
radial-gradient(ellipse at 50% 90%, rgba(244, 63, 94, 0.06) 0%, transparent 40%);
pointer-events: none;
}
.hero-grid {
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(99, 102, 241, 0.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(99, 102, 241, 0.04) 1px, transparent 1px);
background-size: 50px 50px;
pointer-events: none;
animation: gridPulse 8s ease-in-out infinite;
}
@keyframes gridPulse {
0%, 100% { opacity: 0.4; }
50% { opacity: 1; }
}
.hero-badge {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.4rem 1.2rem;
border: 1px solid var(--accent);
border-radius: 100px;
font-size: 0.85rem;
color: var(--accent);
background: rgba(99, 102, 241, 0.08);
margin-bottom: 1.5rem;
position: relative;
z-index: 1;
}
.hero h1 {
font-size: clamp(2.5rem, 6vw, 4.5rem);
font-weight: 800;
line-height: 1.15;
background: linear-gradient(135deg, #e2e4f0 30%, #6366f1 60%, #06b6d4 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
margin-bottom: 1rem;
position: relative;
z-index: 1;
}
.hero-sub {
font-size: 1.2rem;
color: var(--text2);
max-width: 700px;
position: relative;
z-index: 1;
margin-bottom: 2rem;
}
.hero-stats {
display: flex;
gap: 3rem;
position: relative;
z-index: 1;
margin-top: 1rem;
}
.hero-stats .stat { text-align: center; }
.hero-stats .stat-num {
font-size: 2.5rem;
font-weight: 800;
background: linear-gradient(135deg, var(--accent), var(--accent2));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.hero-stats .stat-label {
font-size: 0.85rem;
color: var(--text2);
}
/* ===== Section ===== */
section {
max-width: 1200px;
margin: 0 auto;
padding: 4rem 2rem;
}
.section-title {
font-size: 2rem;
font-weight: 700;
margin-bottom: 0.5rem;
background: linear-gradient(135deg, #e2e4f0, var(--accent));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.section-desc {
color: var(--text2);
margin-bottom: 2.5rem;
font-size: 1.05rem;
}
/* ===== Origin Card ===== */
.origin-card {
background: linear-gradient(135deg, rgba(99, 102, 241, 0.08), rgba(6, 182, 212, 0.06));
border: 1px solid rgba(99, 102, 241, 0.25);
border-radius: 16px;
padding: 2.5rem;
margin-bottom: 3rem;
position: relative;
overflow: hidden;
}
.origin-card::before {
content: '';
position: absolute;
top: -50%;
right: -20%;
width: 300px;
height: 300px;
background: radial-gradient(circle, rgba(99, 102, 241, 0.1) 0%, transparent 70%);
pointer-events: none;
}
.origin-card h3 { font-size: 1.5rem; color: var(--accent); margin-bottom: 0.5rem; }
.origin-card .origin-meta { color: var(--text2); font-size: 0.9rem; margin-bottom: 1rem; }
.origin-card p { color: var(--text); line-height: 1.8; margin-bottom: 1rem; }
.origin-card .tag-row { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.tag { display: inline-block; padding: 0.25rem 0.75rem; border-radius: 6px; font-size: 0.8rem; font-weight: 500; }
.tag-red { background: rgba(244, 63, 94, 0.15); color: #f87171; }
.tag-yellow { background: rgba(245, 158, 11, 0.15); color: #fbbf24; }
.tag-blue { background: rgba(99, 102, 241, 0.15); color: #818cf8; }
.tag-green { background: rgba(16, 185, 129, 0.15); color: #34d399; }
.tag-cyan { background: rgba(6, 182, 212, 0.15); color: #22d3ee; }
/* ===== Project Cards ===== */
.project-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
.project-card {
background: var(--card);
border: 1px solid var(--border);
border-radius: 14px;
padding: 2rem;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.project-card:hover {
border-color: var(--accent);
box-shadow: var(--glow);
transform: translateY(-2px);
}
.project-card .rank {
position: absolute; top: 1.5rem; right: 1.5rem;
font-size: 3rem; font-weight: 900;
color: rgba(99, 102, 241, 0.1); line-height: 1;
}
.project-card .tier-badge {
display: inline-block; padding: 0.2rem 0.6rem; border-radius: 4px;
font-size: 0.7rem; font-weight: 700; text-transform: uppercase;
letter-spacing: 0.05em; margin-bottom: 0.75rem;
}
.tier-1 { background: rgba(16, 185, 129, 0.15); color: #34d399; }
.tier-2 { background: rgba(245, 158, 11, 0.15); color: #fbbf24; }
.project-card h3 { font-size: 1.35rem; font-weight: 700; color: var(--text); margin-bottom: 0.3rem; }
.project-card h3 a { color: inherit; text-decoration: none; transition: color 0.2s; }
.project-card h3 a:hover { color: var(--accent); }
.project-meta {
display: flex; flex-wrap: wrap; gap: 1rem;
font-size: 0.85rem; color: var(--text2); margin-bottom: 1rem;
}
.project-meta span { display: inline-flex; align-items: center; gap: 0.3rem; }
.project-desc { color: var(--text2); line-height: 1.8; margin-bottom: 1rem; }
.project-pipeline { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
.pipe-step {
display: inline-flex; align-items: center;
padding: 0.3rem 0.7rem;
background: rgba(99, 102, 241, 0.08);
border: 1px solid rgba(99, 102, 241, 0.15);
border-radius: 6px; font-size: 0.8rem; color: var(--text);
}
.pipe-arrow { color: var(--text2); font-size: 0.9rem; }
.project-footer {
display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center;
padding-top: 1rem; border-top: 1px solid var(--border);
}
.gpu-badge {
display: inline-flex; align-items: center; gap: 0.3rem;
padding: 0.3rem 0.7rem; border-radius: 6px; font-size: 0.8rem; font-weight: 600;
}
.gpu-low { background: rgba(16, 185, 129, 0.12); color: #34d399; }
.gpu-mid { background: rgba(245, 158, 11, 0.12); color: #fbbf24; }
.gpu-high { background: rgba(244, 63, 94, 0.12); color: #f87171; }
.code-badge {
display: inline-flex; align-items: center; gap: 0.3rem;
padding: 0.3rem 0.7rem; border-radius: 6px; font-size: 0.8rem; font-weight: 600;
background: rgba(16, 185, 129, 0.12); color: #34d399;
}
.local-badge {
display: inline-flex; align-items: center; gap: 0.3rem;
padding: 0.3rem 0.7rem; border-radius: 6px; font-size: 0.8rem; font-weight: 600;
background: rgba(6, 182, 212, 0.12); color: #22d3ee;
}
/* ===== Guide ===== */
.guide-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.2rem; }
.guide-card {
background: var(--card); border: 1px solid var(--border);
border-radius: 12px; padding: 1.5rem; transition: all 0.3s ease;
}
.guide-card:hover { border-color: var(--accent); box-shadow: var(--glow); }
.guide-card .guide-icon { font-size: 2rem; margin-bottom: 0.75rem; }
.guide-card h4 { font-size: 1rem; font-weight: 600; color: var(--text); margin-bottom: 0.5rem; }
.guide-card p { font-size: 0.9rem; color: var(--text2); line-height: 1.6; }
.guide-card .pick {
display: inline-block; margin-top: 0.75rem; padding: 0.3rem 0.8rem;
border-radius: 6px; font-size: 0.85rem; font-weight: 600;
background: rgba(99, 102, 241, 0.12); color: var(--accent);
}
/* ===== Repo Table ===== */
.repo-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.repo-table th {
text-align: left; padding: 0.75rem 1rem; border-bottom: 2px solid var(--border);
color: var(--text2); font-weight: 600; font-size: 0.8rem;
text-transform: uppercase; letter-spacing: 0.05em;
}
.repo-table td { padding: 0.75rem 1rem; border-bottom: 1px solid rgba(30, 32, 64, 0.5); color: var(--text); }
.repo-table tr:hover td { background: rgba(99, 102, 241, 0.03); }
.repo-table a { color: var(--accent); text-decoration: none; }
.repo-table a:hover { text-decoration: underline; }
.status-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 0.4rem; }
.dot-green { background: #34d399; }
.dot-yellow { background: #fbbf24; }
.dot-red { background: #f87171; }
/* ===== Timeline ===== */
.timeline { position: relative; padding-left: 2rem; }
.timeline::before {
content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 2px;
background: linear-gradient(180deg, var(--accent), var(--accent2), transparent);
}
.tl-item { position: relative; padding-bottom: 2rem; }
.tl-item::before {
content: ''; position: absolute; left: -2rem; top: 0.35rem;
width: 10px; height: 10px; border-radius: 50%;
background: var(--accent); border: 2px solid var(--bg); transform: translateX(-4px);
}
.tl-item .tl-date { font-size: 0.8rem; color: var(--accent); font-weight: 600; margin-bottom: 0.25rem; }
.tl-item .tl-title { font-size: 1rem; font-weight: 600; margin-bottom: 0.25rem; }
.tl-item .tl-desc { font-size: 0.9rem; color: var(--text2); }
/* ===== Footer ===== */
footer {
text-align: center; padding: 3rem 2rem; color: var(--text2); font-size: 0.85rem;
border-top: 1px solid var(--border); max-width: 1200px; margin: 0 auto;
}
footer a { color: var(--accent); text-decoration: none; }
/* ===== Responsive ===== */
@media (max-width: 768px) {
.hero-stats { gap: 1.5rem; }
.hero-stats .stat-num { font-size: 2rem; }
section { padding: 3rem 1.2rem; }
.project-card { padding: 1.5rem; }
.origin-card { padding: 1.5rem; }
.guide-grid { grid-template-columns: 1fr; }
}
</style>
</head>
<body class="lang-zh">
<!-- Language Toggle -->
<div class="lang-toggle">
<button id="btn-zh" class="active" onclick="setLang('zh')">CN</button>
<button id="btn-en" onclick="setLang('en')">EN</button>
</div>
<!-- Hero -->
<div class="hero">
<div class="hero-grid"></div>
<div class="hero-badge">Research 2026-03-27</div>
<h1>
<span class="zh">3D 场景生成<br>开源复现计划</span>
<span class="en">3D Scene Generation<br>Open-Source Reproduction</span>
</h1>
<p class="hero-sub">
<span class="zh">
从 WorldMesh 出发,梳理当前最优秀的开源 3D 场景生成项目。<br>
文本/图像输入 &rarr; 可导航的 3D 世界。源码已本地保存,待 GPU 后逐一复现。
</span>
<span class="en">
From WorldMesh to the best open-source 3D scene generation projects.<br>
Text/Image &rarr; Navigable 3D Worlds. All source code saved locally, ready for GPU.
</span>
</p>
<div class="hero-stats">
<div class="stat">
<div class="stat-num">7</div>
<div class="stat-label"><span class="zh">开源项目</span><span class="en">Open-Source Projects</span></div>
</div>
<div class="stat">
<div class="stat-num">5</div>
<div class="stat-label"><span class="zh">顶会论文</span><span class="en">Top-Venue Papers</span></div>
</div>
<div class="stat">
<div class="stat-num">11K+</div>
<div class="stat-label">GitHub Stars</div>
</div>
</div>
</div>
<!-- WorldMesh -->
<section>
<h2 class="section-title">
<span class="zh">起因WorldMesh</span>
<span class="en">Origin: WorldMesh</span>
</h2>
<p class="section-desc">
<span class="zh">WorldMesh 提出了几何优先的 3D 场景生成思路,但代码未开源。我们找到了 7 个可复现的替代方案。</span>
<span class="en">The geometry-first approach that sparked this research. Code not yet released — here are 7 reproducible alternatives.</span>
</p>
<div class="origin-card">
<h3>WorldMesh</h3>
<div class="origin-meta">arXiv 2603.22972 &middot; TUM &middot; 2026-03-24 &middot; Manuel-Andreas Schneider, Angela Dai</div>
<p>
<span class="zh">
<strong>核心思路:</strong>几何优先Geometry-First— 文本 &rarr; 平面图 &rarr; 3D 网格支架(墙面、地面、结构)&rarr;
基于网格条件的图像扩散合成外观 &rarr; 3D Gaussian Splatting 输出可导航场景。
支持大规模多房间生成,古罗马到赛博朋克多种风格。用户偏好测试 96.2% 优于基线。
</span>
<span class="en">
<strong>Core Idea:</strong> Geometry-First — Text &rarr; Floor Plan &rarr; 3D Mesh Scaffold (walls, floors, structure) &rarr;
Mesh-Conditioned Image Diffusion for appearance &rarr; 3D Gaussian Splatting for navigable output.
Supports large-scale multi-room generation across styles (Ancient Roman to Cyberpunk). 96.2% user preference over baselines.
</span>
</p>
<div class="tag-row">
<span class="tag tag-red"><span class="zh">代码未开源</span><span class="en">Code Not Released</span></span>
<span class="tag tag-yellow"><span class="zh">arXiv 预印本</span><span class="en">arXiv Preprint</span></span>
<span class="tag tag-blue">Mesh-Conditioned Diffusion</span>
<span class="tag tag-blue">3D Gaussian Splatting</span>
</div>
</div>
</section>
<!-- Tier 1 -->
<section>
<h2 class="section-title">
<span class="zh">第一梯队 — 直接可跑</span>
<span class="en">Tier 1 — Ready to Run</span>
</h2>
<p class="section-desc">
<span class="zh">代码完整发布,社区验证,文档齐全</span>
<span class="en">Complete code, community-verified, well-documented</span>
</p>
<div class="project-grid">
<!-- #1 WorldGen -->
<div class="project-card">
<div class="rank">#1</div>
<span class="tier-badge tier-1">Tier 1</span>
<h3><a href="https://github.com/ZiYang-xie/WorldGen" target="_blank">WorldGen</a></h3>
<div class="project-meta">
<span>1,592 Stars</span>
<span>Apache-2.0</span>
<span>2025-04</span>
<span><span class="zh">活跃维护</span><span class="en">Actively Maintained</span></span>
</div>
<p class="project-desc">
<span class="zh">
文本/图像 &rarr; 可导航 3D 场景。基于全景生成 + Gaussian Splattingpip 安装即用。
支持低显存模式10GB是目前上手门槛最低的方案。
</span>
<span class="en">
Text/Image &rarr; navigable 3D scene. Panorama generation + Gaussian Splatting, pip install ready.
Low VRAM mode (10GB) makes it the lowest barrier option available.
</span>
</p>
<div class="project-pipeline">
<span class="pipe-step">Text / Image</span>
<span class="pipe-arrow">&rarr;</span>
<span class="pipe-step">Panorama (FLUX.1)</span>
<span class="pipe-arrow">&rarr;</span>
<span class="pipe-step">Depth Estimation</span>
<span class="pipe-arrow">&rarr;</span>
<span class="pipe-step">3D Gaussian Splat</span>
<span class="pipe-arrow">&rarr;</span>
<span class="pipe-step"><span class="zh">Viser 导航</span><span class="en">Viser Navigation</span></span>
</div>
<div class="project-footer">
<span class="gpu-badge gpu-low">GPU: 10GB (low_vram)</span>
<span class="gpu-badge gpu-mid">GPU: 24GB (<span class="zh">标准</span><span class="en">standard</span>)</span>
<span class="code-badge"><span class="status-dot dot-green"></span><span class="zh">代码完整</span><span class="en">Code Complete</span></span>
<span class="local-badge"><span class="zh">源码已保存</span><span class="en">Saved Locally</span></span>
</div>
</div>
<!-- #2 Text2Room -->
<div class="project-card">
<div class="rank">#2</div>
<span class="tier-badge tier-1">Tier 1</span>
<h3><a href="https://github.com/lukasHoel/text2room" target="_blank">Text2Room</a></h3>
<div class="project-meta">
<span>1,082 Stars</span>
<span>ICCV 2023</span>
<span>TUM</span>
</div>
<p class="project-desc">
<span class="zh">
该领域的奠基之作。文本 &rarr; 带纹理的 3D 房间网格。迭代生成视图、修复、对齐深度、融合网格。
代码干净稳定,复现性经过大量验证。
</span>
<span class="en">
The foundational work. Text &rarr; textured 3D room mesh. Iterative view generation, inpainting, depth alignment, and mesh fusion.
Clean, stable codebase with proven reproducibility.
</span>
</p>
<div class="project-pipeline">
<span class="pipe-step">Text Prompt</span>
<span class="pipe-arrow">&rarr;</span>
<span class="pipe-step">Stable Diffusion 2</span>
<span class="pipe-arrow">&rarr;</span>
<span class="pipe-step">Depth Alignment</span>
<span class="pipe-arrow">&rarr;</span>
<span class="pipe-step">Mesh Fusion</span>
<span class="pipe-arrow">&rarr;</span>
<span class="pipe-step">Textured 3D Mesh</span>
</div>
<div class="project-footer">
<span class="gpu-badge gpu-mid">GPU: 16-24GB</span>
<span class="code-badge"><span class="status-dot dot-green"></span><span class="zh">代码完整</span><span class="en">Code Complete</span></span>
<span class="local-badge"><span class="zh">源码已保存</span><span class="en">Saved Locally</span></span>
</div>
</div>
<!-- #3 Infinigen -->
<div class="project-card">
<div class="rank">#3</div>
<span class="tier-badge tier-1">Tier 1</span>
<h3><a href="https://github.com/princeton-vl/infinigen" target="_blank">Infinigen</a></h3>
<div class="project-meta">
<span>6,878 Stars</span>
<span>CVPR 2023 + 2024</span>
<span>Princeton</span>
<span>BSD</span>
</div>
<p class="project-desc">
<span class="zh">
普林斯顿出品,程序化生成照片级室内外 3D 场景。100% 程序化,无需外部素材。
最成熟的项目3,214 commitsMac CPU 也能跑。适合生成训练数据集。
</span>
<span class="en">
Princeton's procedural generation framework. Photorealistic indoor + outdoor 3D scenes, 100% procedural, no external assets.
Most mature project (3,214 commits). CPU compatible — works on Mac without NVIDIA GPU.
</span>
</p>
<div class="project-pipeline">
<span class="pipe-step">Procedural Rules</span>
<span class="pipe-arrow">&rarr;</span>
<span class="pipe-step">Blender Generation</span>
<span class="pipe-arrow">&rarr;</span>
<span class="pipe-step">Photorealistic Render</span>
</div>
<div class="project-footer">
<span class="gpu-badge gpu-low">CPU OK / GPU Accelerated</span>
<span class="code-badge"><span class="status-dot dot-green"></span><span class="zh">代码完整</span><span class="en">Code Complete</span></span>
<span class="local-badge"><span class="zh">源码已保存</span><span class="en">Saved Locally</span></span>
</div>
</div>
<!-- #4 WonderWorld -->
<div class="project-card">
<div class="rank">#4</div>
<span class="tier-badge tier-1">Tier 1</span>
<h3><a href="https://github.com/KovenYu/WonderWorld" target="_blank">WonderWorld</a></h3>
<div class="project-meta">
<span>717 Stars</span>
<span>CVPR 2025</span>
</div>
<p class="project-desc">
<span class="zh">
最接近 WorldMesh 的方案。单张图像 &rarr; 连通的可导航 3D 场景,基于 Fast Layered Gaussian Surfels (FLAGS)。
支持浏览器交互式导航,每个新视角 &lt;10 秒。
</span>
<span class="en">
Closest to WorldMesh. Single image &rarr; connected navigable 3D scenes via Fast Layered Gaussian Surfels (FLAGS).
Browser-based interactive navigation, &lt;10s per new view.
</span>
</p>
<div class="project-pipeline">
<span class="pipe-step">Single Image</span>
<span class="pipe-arrow">&rarr;</span>
<span class="pipe-step">Depth + Segmentation</span>
<span class="pipe-arrow">&rarr;</span>
<span class="pipe-step">Layered Gaussian Surfels</span>
<span class="pipe-arrow">&rarr;</span>
<span class="pipe-step"><span class="zh">交互式导航</span><span class="en">Interactive Navigation</span></span>
</div>
<div class="project-footer">
<span class="gpu-badge gpu-high">GPU: 48GB (A6000/A100)</span>
<span class="code-badge"><span class="status-dot dot-green"></span><span class="zh">代码完整</span><span class="en">Code Complete</span></span>
<span class="local-badge"><span class="zh">源码已保存</span><span class="en">Saved Locally</span></span>
</div>
</div>
</div>
</section>
<!-- Tier 2 -->
<section>
<h2 class="section-title">
<span class="zh">第二梯队 — 门槛稍高</span>
<span class="en">Tier 2 — Higher Barrier</span>
</h2>
<p class="section-desc">
<span class="zh">代码可用,构建流程较复杂或硬件要求更高</span>
<span class="en">Code available, more complex setup or higher hardware requirements</span>
</p>
<div class="project-grid">
<!-- #5 LayerPano3D -->
<div class="project-card">
<div class="rank">#5</div>
<span class="tier-badge tier-2">Tier 2</span>
<h3><a href="https://github.com/3DTopia/LayerPano3D" target="_blank">LayerPano3D</a></h3>
<div class="project-meta">
<span>315 Stars</span>
<span>SIGGRAPH 2025</span>
</div>
<p class="project-desc">
<span class="zh">
文本 &rarr; 分层 360&deg; 全景 3D 场景 + Gaussian Splatting。沉浸感最强。
需编译 C++ 扩展Ceres solver、360monodepth构建过程较复杂。
</span>
<span class="en">
Text &rarr; layered 360&deg; panoramic 3D scene + Gaussian Splatting. Most immersive experience.
Requires C++ extension compilation (Ceres solver, 360monodepth).
</span>
</p>
<div class="project-footer">
<span class="gpu-badge gpu-mid">GPU: 16-24GB</span>
<span class="code-badge"><span class="status-dot dot-green"></span><span class="zh">代码完整</span><span class="en">Code Complete</span></span>
<span class="tag tag-yellow"><span class="zh">需编译 C++</span><span class="en">C++ Build Required</span></span>
<span class="local-badge"><span class="zh">源码已保存</span><span class="en">Saved Locally</span></span>
</div>
</div>
<!-- #6 RealmDreamer -->
<div class="project-card">
<div class="rank">#6</div>
<span class="tier-badge tier-2">Tier 2</span>
<h3><a href="https://github.com/jaidevshriram/realmdreamer" target="_blank">RealmDreamer</a></h3>
<div class="project-meta">
<span>297 Stars</span>
<span>3DV 2025</span>
</div>
<p class="project-desc">
<span class="zh">
文本 &rarr; 3D 场景Gaussian Splatting用户偏好测试 88-95%。
提供预生成输出可跳过耗时阶段Stage 2 训练约需数小时。
</span>
<span class="en">
Text &rarr; 3D scene via Gaussian Splatting. 88-95% user preference in studies.
Pre-generated outputs available to skip slow stages. Stage 2 training takes several hours.
</span>
</p>
<div class="project-footer">
<span class="gpu-badge gpu-mid">CUDA 11.8</span>
<span class="code-badge"><span class="status-dot dot-green"></span><span class="zh">代码完整</span><span class="en">Code Complete</span></span>
<span class="tag tag-yellow"><span class="zh">训练耗时数小时</span><span class="en">Hours of Training</span></span>
<span class="local-badge"><span class="zh">源码已保存</span><span class="en">Saved Locally</span></span>
</div>
</div>
<!-- #7 SceneCraft -->
<div class="project-card">
<div class="rank">#7</div>
<span class="tier-badge tier-2">Tier 2</span>
<h3><a href="https://github.com/OrangeSodahub/SceneCraft" target="_blank">SceneCraft</a></h3>
<div class="project-meta">
<span>233 Stars</span>
<span>NeurIPS 2024</span>
</div>
<p class="project-desc">
<span class="zh">
文本 + 空间布局 &rarr; 多房间公寓 3D 场景NeRF。支持复杂平面图。
多房间能力最接近 WorldMesh但需要 2+ GPU。
</span>
<span class="en">
Text + spatial layout &rarr; multi-room apartment 3D scenes via NeRF. Supports complex floor plans.
Closest to WorldMesh's multi-room capability, but requires 2+ GPUs.
</span>
</p>
<div class="project-footer">
<span class="gpu-badge gpu-high">GPU: 2+ <span class="zh"></span><span class="en">Required</span></span>
<span class="code-badge"><span class="status-dot dot-yellow"></span><span class="zh">代码部分完整</span><span class="en">Partially Complete</span></span>
<span class="local-badge"><span class="zh">源码已保存</span><span class="en">Saved Locally</span></span>
</div>
</div>
</div>
</section>
<!-- Decision Guide -->
<section>
<h2 class="section-title">
<span class="zh">快速选择指南</span>
<span class="en">Quick Decision Guide</span>
</h2>
<p class="section-desc">
<span class="zh">根据你的场景和硬件选择最合适的项目</span>
<span class="en">Pick the right project based on your scenario and hardware</span>
</p>
<div class="guide-grid">
<div class="guide-card">
<div class="guide-icon">&#9889;</div>
<h4><span class="zh">最快出效果</span><span class="en">Fastest Results</span></h4>
<p><span class="zh">pip 安装,最低 10GB 显存,文本直接出 3D 场景</span><span class="en">pip install, 10GB VRAM minimum, text directly to 3D scene</span></p>
<span class="pick">WorldGen</span>
</div>
<div class="guide-card">
<div class="guide-icon">&#127891;</div>
<h4><span class="zh">学习经典方法</span><span class="en">Learn the Fundamentals</span></h4>
<p><span class="zh">ICCV 2023 奠基之作,代码干净,论文被引最多</span><span class="en">ICCV 2023 foundational work, clean code, most cited</span></p>
<span class="pick">Text2Room</span>
</div>
<div class="guide-card">
<div class="guide-icon">&#128187;</div>
<h4><span class="zh">没有 NVIDIA GPU</span><span class="en">No NVIDIA GPU</span></h4>
<p><span class="zh">CPU 也能跑,基于 Blender 程序化生成Mac 可用</span><span class="en">CPU compatible, Blender-based procedural generation, works on Mac</span></p>
<span class="pick">Infinigen</span>
</div>
<div class="guide-card">
<div class="guide-icon">&#127760;</div>
<h4><span class="zh">最接近 WorldMesh</span><span class="en">Closest to WorldMesh</span></h4>
<p><span class="zh">交互式导航,连通多房间,但需要 48GB 显存</span><span class="en">Interactive navigation, connected multi-room, needs 48GB VRAM</span></p>
<span class="pick">WonderWorld</span>
</div>
<div class="guide-card">
<div class="guide-icon">&#127916;</div>
<h4><span class="zh">360&deg; 沉浸全景</span><span class="en">360&deg; Immersive Panorama</span></h4>
<p><span class="zh">SIGGRAPH 级别质量360 度环绕 3D 场景</span><span class="en">SIGGRAPH-level quality, 360-degree surround 3D scenes</span></p>
<span class="pick">LayerPano3D</span>
</div>
<div class="guide-card">
<div class="guide-icon">&#127970;</div>
<h4><span class="zh">多房间公寓布局</span><span class="en">Multi-Room Apartments</span></h4>
<p><span class="zh">支持平面图控制,最精确的空间布局方案</span><span class="en">Floor plan controlled, most precise spatial layout</span></p>
<span class="pick">SceneCraft</span>
</div>
</div>
</section>
<!-- Local Repo Status -->
<section>
<h2 class="section-title">
<span class="zh">本地源码状态</span>
<span class="en">Local Source Code Status</span>
</h2>
<p class="section-desc">
<span class="zh">所有源码已 clone 至 <code style="color:var(--accent)">repos/</code> 目录,待 GPU 后逐一复现</span>
<span class="en">All repos cloned to <code style="color:var(--accent)">repos/</code> — ready for GPU</span>
</p>
<div style="overflow-x: auto;">
<table class="repo-table">
<thead>
<tr>
<th><span class="zh">项目</span><span class="en">Project</span></th>
<th><span class="zh">本地路径</span><span class="en">Local Path</span></th>
<th>Stars</th>
<th><span class="zh">会议</span><span class="en">Venue</span></th>
<th>GPU</th>
<th><span class="zh">状态</span><span class="en">Status</span></th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/ZiYang-xie/WorldGen">WorldGen</a></td>
<td><code>repos/WorldGen/</code></td>
<td>1,592</td>
<td>Independent</td>
<td>10-24GB</td>
<td><span class="status-dot dot-green"></span><span class="zh">已保存</span><span class="en">Saved</span></td>
</tr>
<tr>
<td><a href="https://github.com/lukasHoel/text2room">Text2Room</a></td>
<td><code>repos/text2room/</code></td>
<td>1,082</td>
<td>ICCV 2023</td>
<td>16-24GB</td>
<td><span class="status-dot dot-green"></span><span class="zh">已保存</span><span class="en">Saved</span></td>
</tr>
<tr>
<td><a href="https://github.com/princeton-vl/infinigen">Infinigen</a></td>
<td><code>repos/infinigen/</code></td>
<td>6,878</td>
<td>CVPR 23+24</td>
<td>CPU OK</td>
<td><span class="status-dot dot-green"></span><span class="zh">已保存</span><span class="en">Saved</span></td>
</tr>
<tr>
<td><a href="https://github.com/KovenYu/WonderWorld">WonderWorld</a></td>
<td><code>repos/WonderWorld/</code></td>
<td>717</td>
<td>CVPR 2025</td>
<td>48GB</td>
<td><span class="status-dot dot-green"></span><span class="zh">已保存</span><span class="en">Saved</span></td>
</tr>
<tr>
<td><a href="https://github.com/3DTopia/LayerPano3D">LayerPano3D</a></td>
<td><code>repos/LayerPano3D/</code></td>
<td>315</td>
<td>SIGGRAPH 25</td>
<td>16-24GB</td>
<td><span class="status-dot dot-green"></span><span class="zh">已保存</span><span class="en">Saved</span></td>
</tr>
<tr>
<td><a href="https://github.com/jaidevshriram/realmdreamer">RealmDreamer</a></td>
<td><code>repos/realmdreamer/</code></td>
<td>297</td>
<td>3DV 2025</td>
<td>CUDA 11.8</td>
<td><span class="status-dot dot-green"></span><span class="zh">已保存</span><span class="en">Saved</span></td>
</tr>
<tr>
<td><a href="https://github.com/OrangeSodahub/SceneCraft">SceneCraft</a></td>
<td><code>repos/SceneCraft/</code></td>
<td>233</td>
<td>NeurIPS 24</td>
<td>2+ GPU</td>
<td><span class="status-dot dot-green"></span><span class="zh">已保存</span><span class="en">Saved</span></td>
</tr>
</tbody>
</table>
</div>
</section>
<!-- Timeline -->
<section>
<h2 class="section-title">
<span class="zh">技术演进</span>
<span class="en">Evolution Timeline</span>
</h2>
<p class="section-desc">
<span class="zh">3D 场景生成领域近年关键节点</span>
<span class="en">Key milestones in 3D scene generation</span>
</p>
<div class="timeline">
<div class="tl-item">
<div class="tl-date">2023-06</div>
<div class="tl-title">Text2Room (ICCV 2023)</div>
<div class="tl-desc"><span class="zh">首次实现文本到带纹理 3D 房间网格,奠定该方向基础</span><span class="en">First text-to-textured 3D room mesh, foundational work</span></div>
</div>
<div class="tl-item">
<div class="tl-date">2023-06</div>
<div class="tl-title">Infinigen (CVPR 2023)</div>
<div class="tl-desc"><span class="zh">普林斯顿程序化生成框架,无限照片级 3D 世界</span><span class="en">Princeton's procedural generation framework for infinite photorealistic worlds</span></div>
</div>
<div class="tl-item">
<div class="tl-date">2023-11</div>
<div class="tl-title">MVDiffusion (NeurIPS 2023 Spotlight)</div>
<div class="tl-desc"><span class="zh">多视角一致性图像生成,成为后续全景方案的基础组件</span><span class="en">Multi-view consistent image generation, foundation for panorama-based methods</span></div>
</div>
<div class="tl-item">
<div class="tl-date">2024-01</div>
<div class="tl-title">Infinigen Indoors (CVPR 2024)</div>
<div class="tl-desc"><span class="zh">扩展至室内场景,程序化生成家具、厨房、浴室等</span><span class="en">Extended to indoor scenes — furniture, kitchens, bathrooms</span></div>
</div>
<div class="tl-item">
<div class="tl-date">2024-09</div>
<div class="tl-title">SceneCraft (NeurIPS 2024)</div>
<div class="tl-desc"><span class="zh">布局引导的多房间 3D 场景生成NeRF 输出</span><span class="en">Layout-guided multi-room 3D scene generation via NeRF</span></div>
</div>
<div class="tl-item">
<div class="tl-date">2024-09</div>
<div class="tl-title">DreamScene360 (ECCV 2024)</div>
<div class="tl-desc"><span class="zh">360&deg; 全景 Gaussian Splatting 场景生成</span><span class="en">360&deg; panoramic Gaussian Splatting scene generation</span></div>
</div>
<div class="tl-item">
<div class="tl-date">2025-01</div>
<div class="tl-title">WonderWorld (CVPR 2025)</div>
<div class="tl-desc"><span class="zh">单图像交互式导航 3D 场景Fast Layered Gaussian Surfels</span><span class="en">Single-image interactive navigable 3D scenes, Fast Layered Gaussian Surfels</span></div>
</div>
<div class="tl-item">
<div class="tl-date">2025-04</div>
<div class="tl-title">WorldGen</div>
<div class="tl-desc"><span class="zh">目前最易用的文本到 3D 场景方案10GB 显存即可</span><span class="en">Most accessible text-to-3D scene method, 10GB VRAM minimum</span></div>
</div>
<div class="tl-item">
<div class="tl-date">2025-07</div>
<div class="tl-title">LayerPano3D (SIGGRAPH 2025)</div>
<div class="tl-desc"><span class="zh">分层 360&deg; 全景 + Gaussian Splatting超沉浸体验</span><span class="en">Layered 360&deg; panorama + Gaussian Splatting, hyper-immersive</span></div>
</div>
<div class="tl-item">
<div class="tl-date">2026-03</div>
<div class="tl-title">WorldMesh (arXiv)</div>
<div class="tl-desc"><span class="zh">几何优先策略,网格支架约束多房间生成,代码待发布</span><span class="en">Geometry-first mesh scaffold for multi-room generation — code pending</span></div>
</div>
</div>
</section>
<!-- References -->
<section>
<h2 class="section-title">
<span class="zh">参考资源</span>
<span class="en">References</span>
</h2>
<p class="section-desc">
<span class="zh">进一步学习和追踪</span>
<span class="en">Further reading and tracking</span>
</p>
<div class="guide-grid">
<div class="guide-card">
<h4>Awesome 3D Scene Generation</h4>
<p><span class="zh">959 Stars最全面的论文+代码列表</span><span class="en">959 Stars, the most comprehensive paper + code list</span></p>
<a href="https://github.com/hzxie/Awesome-3D-Scene-Generation" target="_blank" style="color:var(--accent);font-size:0.85rem;">GitHub &rarr;</a>
</div>
<div class="guide-card">
<h4>WorldMesh Paper</h4>
<p><span class="zh">arXiv 2603.22972,等代码释出后第一时间复现</span><span class="en">arXiv 2603.22972 — watch for code release</span></p>
<a href="https://arxiv.org/abs/2603.22972" target="_blank" style="color:var(--accent);font-size:0.85rem;">arXiv &rarr;</a>
</div>
<div class="guide-card">
<h4>WorldMesh GitHub</h4>
<p><span class="zh">Watch 仓库,代码发布后会有通知</span><span class="en">Watch this repo for code release notification</span></p>
<a href="https://github.com/mschneider456/worldmesh" target="_blank" style="color:var(--accent);font-size:0.85rem;">GitHub &rarr;</a>
</div>
</div>
</section>
<footer>
<p>
<span class="zh">3D 场景生成 &middot; 开源复现计划 &middot; 源码保存于 <code>repos/</code></span>
<span class="en">3D Scene Generation &middot; Open-Source Reproduction Plan &middot; Source saved in <code>repos/</code></span>
</p>
<p style="margin-top:0.5rem;">
<span class="zh">本地服务</span><span class="en">Local server</span>: <code>python3 -m http.server 4330</code>
</p>
</footer>
<script>
function setLang(lang) {
document.body.className = 'lang-' + lang;
document.getElementById('btn-zh').className = lang === 'zh' ? 'active' : '';
document.getElementById('btn-en').className = lang === 'en' ? 'active' : '';
localStorage.setItem('lang', lang);
}
// Restore preference
(function() {
var saved = localStorage.getItem('lang');
if (saved) setLang(saved);
})();
</script>
</body>
</html>