deepopen-com/deepopen-3d-webs

Image-driven 3D scene generation system. Users provide a reference image and prompt words, and the system generates previewable, replayable, and traceable scene results according to the camera trajectory; official 3D demonstration assets allow direct viewing of color/depth animations and Gaussian point clouds in the browser 图像驱动的三维场景生成系统

What it is

DeepOpen-3d-webs (also called Guangyu Zaojing / 光域造景) is an image-driven 3D scene generation system. You give it one reference image plus a text prompt, and it produces 3D scene results along a camera trajectory that you can preview, replay, and trace in the browser. It ships as a Docker image and listens on port 8090 by default.

The problem it solves

A single image rarely becomes spatial content you can look around in, move through, and hand off. Traditional pipelines split depth estimation, image completion, 3D representation, and camera flythrough across separate tools. This project collapses that chain into one studio: describe a scene with an image and a Chinese prompt, choose how the space is observed and how the final footage moves, then get preview stills, color animations, depth animations, and Gaussian point clouds — all in one interface.

Core features

The system has five tabs:

  • Workbench — Shows total tasks, completed/failed counts, sample scene count, run mode, CUDA status, disk, host, and service port.
  • Scene Generation — Upload a reference image or load a Chinese example (with prompts, model, seed, steps, and camera trajectory). Choose a diffusion model (SD1.5, Blazing Drive V11m, Realistic Vision V5.1, Cartoon Pixar V5), a generation trajectory (Look Around, Overhead Orbit, Spin in Place 360), and a render trajectory (Push In and Out, Classic Orbit, Subtle Sway). "One-Click Generate" runs preview, color animation, and depth animation end to end. You can also run Step 1 (bake Gaussians → PLY) or Step 2 (render video) separately.
  • Example Gallery — Lists examples by name, category, model, trajectory, and date. Previews show the reference image, color/depth animations, a draggable Gaussian point cloud preview, and a full PLY download (files can reach hundreds of MB).
  • Task History — All generation actions are saved to data/history.json. Enter a task ID and click "View & Demo" to see the reference image, both animations, the point cloud preview, and the PLY download together. Official demo-* tasks are preloaded.
  • System Status — Shows host, OS, Python, CUDA, run mode, data directory, and the recommended order of operations.

How it runs

  • Demo mode (default) — Needs no GPU. The pages, gallery 3D demos, and task replay all work. The preview loop runs on the input image; official PLY/MP4 assets can be demoed independently.
  • Full mode — Set LD_DEMO_MODE=0 with an NVIDIA GPU (16 GB VRAM recommended), the NVIDIA Container Toolkit or local CUDA, and compiled submodules. It downloads diffusion and ZoeDepth weights on startup (~30 GB cache). If anything is missing, it falls back to demo mode automatically.

Tech stack

Layer Technology
UI Gradio 3.50, multi-tab, Chinese
Web runtime Python 3.9, FastAPI, Starlette, Uvicorn
Image/video Pillow, NumPy, imageio
Scene generation LucidDreamer (diffusion inpainting, depth estimation, 3D Gaussians)
Depth ZoeDepth
Gaussian rendering 3D Gaussian Splatting rasterization + simple-knn
Point cloud preview Down-sampling via webui/ply_preview.py
Task data Local JSON (data/history.json)
Delivery Docker Compose (demo image and CUDA image)

Requirements

  • Docker Engine 24+ with docker compose
  • Port 8090 open
  • 8 GB RAM recommended; official PLY demos need several extra GB of disk
  • Demo mode: no GPU needed
  • Full mode: NVIDIA GPU (16 GB VRAM recommended), CUDA environment, and compiled submodules

Startup and access

Demo (no GPU):

docker compose up -d --build

Linux server with GPU:

docker compose -f docker-compose.cuda.yml up -d --build

Access at http://127.0.0.1:8090 locally or http://<server-ip>:8090 on a server. There is no login — anyone who can reach the address can use it, so the README recommends restricting access by firewall or reverse proxy in production.

Typical workflow

  1. Check run mode and disk space on the workbench.
  2. Pick an example (e.g., "Anime Lakeside Cabin") and preview it — reference image, animations, point cloud, optional PLY download.
  3. Or enter a demo ID like demo-animelake / demo-girl in Task History and click "View & Demo".
  4. Go to Scene Generation, load an example or upload an image, confirm model/prompts/trajectories.
  5. Click "One-Click Generate" (or use Step 1 / Step 2 separately).
  6. Check the preview, then find the new task ID in Task History for details and media.

Use cases

  • Spatial concept design — Get a look-around version of an interior, building, or landscape before investing in refinement.
  • Stylized content — Anime, fantasy, holiday, and post-apocalyptic presets load directly.
  • Design reviews — Put stills, flythrough footage, and point-cloud previews on one page for collaborators.
  • Teaching and demos — Demo mode needs no GPU, so it works in classrooms and pitch sessions.
  • Starting point for 3D assets — Export PLY Gaussian point clouds for downstream viewing or processing (SuperSplat / MeshLab).

Code structure (key files)

  • web_app.py — Web entry point, listens on 8090
  • luciddreamer.py — Main 3D generation pipeline
  • webui/ — Five tabs, engine, gallery, history, PLY preview, stats, paths
  • scene/, gaussian_renderer/ — Gaussian scene and rendering
  • submodules/ — Rasterization and simple-knn
  • examples/ — Example images, prompts, official PLY/MP4
  • docs/ — Deployment docs, user manual, screenshots

Notes

  • The README states the project is in demo mode by default; full generation requires CUDA and model weights.
  • All screenshots in the README are from docs/user/images/.
  • The system is Chinese-language in its UI.

Related

  • Project
  • Project
  • Project
  • Project