[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-70506":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":15,"starSnapshotCount":15,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},70506,"3DCellForge","huangserva\u002F3DCellForge","huangserva","AI-powered interactive 3D model generation, inspection, and presentation studio.",null,"JavaScript",2448,410,10,1,0,16,28,777,48,29.84,"MIT License",false,"main",true,[],"2026-06-12 02:02:34","# 3D Model Studio\n\n[English](README.md) | [中文](README.zh-CN.md)\n\nAI-powered interactive 3D model generation, inspection, and presentation studio.\n\n3D Model Studio is a React + Three.js prototype for turning uploaded reference images or GLB files into a polished interactive 3D workspace. It supports live WebGL orbit controls, a left model library \u002F center stage \u002F right tools workbench, screenshots, GLB export, collapsed upload history, demo presentation mode, a generation queue, and optional image-to-3D providers for generating real 3D models from uploaded reference images.\n\n## Demo\n\n[![3D Model Studio demo](docs\u002Fdemo\u002F3DCellForge-demo-cover.jpg)](docs\u002Fdemo\u002F3DCellForge-demo-2026-05-10.mp4)\n\nOpen the demo video: [Demo MP4](docs\u002Fdemo\u002F3DCellForge-demo-2026-05-10.mp4)\n\n## Features\n\n- Interactive model viewer built with React Three Fiber.\n- Three-column workbench: Model Library on the left, WebGL stage in the center, asset\u002Fgeneration tools on the right.\n- Drag to rotate, scroll to zoom, isolate structure parts, inspect model details, and export the current scene.\n- Object-aware inspector with inferred category, source, provider state, material focus, demo value, and tags for vehicles, aircraft, vessels, products, artifacts, and organic specimens.\n- Model quality score for generated GLBs, including file size, triangle count, texture count, and demo readiness.\n- Demo Mode for screenshots and screen recordings: hides side panels, uses object-aware cinematic camera paths, and shows a clean presentation overlay.\n- Productized Model Library drawer with source thumbnails, provider\u002Fstatus, task id, GLB URL actions, comparison, and delete controls.\n- Saved Assets stays collapsed by default, while the active generated\u002Fimported asset stays pinned and clickable.\n- Generated\u002Fimported models are restored after refresh through IndexedDB, with localStorage as a compact fallback.\n- Generic part detail drawer, asset references, comparison panel, notes, gallery actions, logs, saved projects, and a compact generation queue.\n- Hyper3D, Tripo, Fal.ai, Hunyuan3D, JS Depth, and Local GLB generation\u002Fimport modes.\n- Cached demo GLB models for offline-friendly screenshots and demos.\n- Auxiliary Khronos glTF reference models for GLB loader and PBR material checks.\n- API key stays server-side in `.env.local`; it is never exposed to the frontend bundle.\n\n## Tech Stack\n\n- React\n- Vite\n- Three.js\n- React Three Fiber\n- Drei\n- Framer Motion\n- Tripo API optional backend\n- Fal.ai optional backend\n- Hunyuan3D local API optional backend\n\n## Quick Start\n\n```bash\nnpm install\nnpm run dev\n```\n\nOpen the Vite URL shown in the terminal.\n\n## Workbench Workflow\n\nThe default screen is intentionally quiet:\n\n- Pick the active generated\u002Fimported asset from the left `Model Library` rail.\n- Earlier generated\u002Fimported models are tucked under `Saved Assets` until expanded.\n- Use the right `Asset Source` rail to choose the generation provider or import a local `.glb` \u002F `.gltf`.\n- Watch upload\u002Fgeneration\u002Fimport state in the left `Generation Queue` panel.\n- Click `Info` or `Inspect` only when you need the part detail drawer.\n- Open top-nav `Library` for the full asset catalog with previews, provider state, task ids, GLB URL copy, provider comparison, and deletion.\n- Click `Demo` in the top navigation to enter a clean presentation mode for screenshots and recordings.\n- Check the quality card on the stage before recording; low scores usually mean the source image or provider result is not demo-ready.\n- Demo animation adapts to the model name and metadata: cars use a road push-in, aircraft use a flight pass, ships\u002Fcarriers use a naval cruise, and organic\u002Fspecimen assets use a studio orbit.\n\nUseful validation commands:\n\n```bash\nnpm run lint\nnpm run build\nnpm run test\nnpm run test:visual\n```\n\n`npm run test:visual` runs Playwright layout and screenshot regression checks for the workbench, the Model Library drawer, and Demo Mode. Use `npm run test:visual:update` only when an intentional UI change needs new screenshot baselines.\n\n## Optional Image-to-3D Backend\n\nTo enable image-to-3D generation, create `.env.local`:\n\n```bash\ncp .env.example .env.local\n```\n\nThen set:\n\n```bash\nTRIPO_API_KEY=your_tripo_key\nFAL_API_KEY=your_fal_key\nRODIN_API_KEY=your_rodin_api_key\nOPENAI_API_KEY=your_openai_key\nAPI_HOST=127.0.0.1\n```\n\n`OPENAI_API_KEY` enables optional image understanding through `\u002Fapi\u002F3d\u002Fanalyze`. When configured, uploads are classified by vision into asset type, material focus, inspection notes, scene profile, tags, and a better image-to-3D prompt. Without it, the app keeps using local filename\u002Fmetadata heuristics.\n\nFor Hunyuan3D local backup mode, start your local Hunyuan3D API server and set:\n\n```bash\nHUNYUAN_API_BASE=http:\u002F\u002F127.0.0.1:8081\nHUNYUAN_CREATE_PATH=\u002Fsend\nHUNYUAN_STATUS_PATH=\u002Fstatus\n```\n\nThe 3D generation backend supports these provider paths:\n\n```text\nHyper3D  Hyper3D Rodin cloud generation only (default)\nTripo    Tripo cloud generation only\nFal      Fal.ai queue generation; model is selected in Settings\nAuto     Hyper3D first, then Tripo, Fal, Hunyuan, and JS Depth backup\nHunyuan  Local Hunyuan3D generation only\n```\n\nThe upload panel exposes the full generation mode choice before picking a file:\n\n```text\nHyper3D     Hyper3D Rodin GLB generation\nTripo       Tripo cloud GLB generation\nFal         Fal.ai queue GLB generation\nHunyuan     Local Hunyuan3D GLB generation\nJS Depth    Browser-side image relief with layered PNG fallback\nAuto        Hyper3D, Tripo, Fal, Hunyuan, then JS Depth fallback\nLocal GLB   Import an existing .glb or self-contained .gltf\n```\n\nTripo uploads use the current STS object-storage flow (`\u002Fupload\u002Fsts\u002Ftoken`) before creating an `image_to_model` task.\nFal uploads use the official `@fal-ai\u002Fclient` storage and queue APIs. Supported Fal models are Hunyuan3D v2, TRELLIS, TripoSR, Tripo3D v2.5, and Hyper3D Rodin. Pick the active Fal model in `Settings`.\nRodin uploads use Hyper3D's multipart `\u002Frodin` task API, then poll `\u002Fstatus` and cache the GLB returned by `\u002Fdownload`.\nGenerated GLBs are cached by the Node backend under `.generated-models\u002F`, so later views use the local copy instead of temporary provider URLs.\nThe frontend model library is saved in IndexedDB, so successful generated\u002Fimported model records survive page refreshes.\n\nYou can also import a local `.glb` or self-contained `.gltf` from the `New Upload` button. Imported models become custom workspace models and are served from the same local cache.\n\nExpected Hunyuan3D local API shape:\n\n```text\nPOST \u002Fsend\nGET  \u002Fstatus\u002F:uid\n```\n\nThe status response can return either a remote model URL or a base64 GLB field such as `model_base64` \u002F `glb_base64`. Base64 GLBs are cached under `.generated-models\u002F` and served by the Node backend.\n\nStart the backend:\n\n```bash\nnpm run dev:api\n```\n\nThen start the frontend:\n\n```bash\nnpm run dev\n```\n\nThe frontend talks to the local Node backend at `http:\u002F\u002F127.0.0.1:8787` by default.\n\n## Demo Models\n\nThe repository includes cached generated GLB files under:\n\n```text\npublic\u002Fgenerated-models\u002F\n```\n\nThese make the demo usable without spending API credits on every run.\n\n## Reference Models\n\nThe Library panel includes remote Khronos glTF Sample Models as auxiliary references for material and loader checks:\n\n- Transmission Test, CC0, Adobe via Khronos.\n- Transmission Roughness Test, CC-BY 4.0, Ed Mackey \u002F Analytical Graphics via Khronos.\n- Mosquito In Amber, CC-BY 4.0, Loic Norgeot \u002F Geoffrey Marchal \u002F Sketchfab via Khronos.\n\nThese are loaded from the archived Khronos sample repository and are not bundled into this repo.\n\n## Security\n\nDo not put real API keys in frontend code. Keep secrets in `.env.local`, which is ignored by git.\n\n## License\n\nMIT\n","3D Model Studio 是一个基于AI的交互式3D模型生成、检查和展示工作室。项目利用React与Three.js技术栈，支持将上传的参考图像或GLB文件转换为可交互的3D工作空间，具备实时WebGL轨道控制、三栏式工作台布局（左侧模型库、中间舞台区、右侧工具箱）、截图、GLB导出等功能，并且能够通过特定服务从图片生成真实3D模型。此外，还提供了演示模式以方便用户进行屏幕录制或截取高质量图像。该工具非常适合需要快速创建、编辑及分享3D内容的设计人员、教育工作者以及任何对3D建模感兴趣的个人使用。",2,"2026-06-11 03:32:32","CREATED_QUERY"]