auto-save 2026-04-01 09:03 (~2)

This commit is contained in:
2026-04-01 09:04:08 +08:00
parent c6be0a5d5b
commit 10df203366
2 changed files with 960 additions and 36 deletions

1
.gitignore vendored
View File

@@ -1,6 +1,7 @@
node_modules/
dist/
build/
repos/
.env
.env.local
.env.production

View File

@@ -1,46 +1,969 @@
<!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>
<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", Roboto, sans-serif;
background: #0a0a0a; color: #e0e0e0;
min-height: 100vh; padding: 2rem;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
background: var(--bg);
color: var(--text);
line-height: 1.7;
overflow-x: hidden;
}
.container { max-width: 1200px; margin: 0 auto; }
h1 {
font-size: 2.5rem; font-weight: 700;
background: linear-gradient(135deg, #60a5fa, #a78bfa);
-webkit-background-clip: text; -webkit-text-fill-color: transparent;
/* ===== 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;
}
.subtitle { color: #888; font-size: 1.1rem; margin-bottom: 2rem; }
.card {
background: #141414; border: 1px solid #222; border-radius: 12px;
padding: 2rem; margin-bottom: 1.5rem;
.section-desc {
color: var(--text2);
margin-bottom: 2.5rem;
font-size: 1.05rem;
}
.card h2 { color: #60a5fa; margin-bottom: 1rem; font-size: 1.3rem; }
.card p { line-height: 1.8; color: #aaa; }
</style>
/* ===== 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>
<div class="container">
<h1>3D 场景生成开源复现</h1>
<p class="subtitle">WorldMesh 类似的开源 3D 场景生成项目调研与源码收集,待 GPU 后复现</p>
<body class="lang-zh">
<div class="card">
<h2>概述</h2>
<p>待补充研究内容...</p>
<!-- 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>
<div class="card">
<h2>核心发现</h2>
<p>待补充...</p>
<!-- #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>