RFD 1102 details: the task table, splat status, architecture, and further reading
Task types, New Task panel
| Task | API feature | Example models (DGX, June 2026) |
|---|---|---|
| Text to 3D | text_to_textured_mesh |
TRELLIS |
| Image to 3D | image_to_textured_mesh |
TRELLIS.2 (recommended), Pixal3D (PBR), Hunyuan3D-2.1 |
| Image to Raw Mesh | image_to_raw_mesh |
Hunyuan3D-2.1, UltraShape |
| Mesh painting (text or image) | text_mesh_painting / image_mesh_painting |
TRELLIS.2, Hunyuan |
| Mesh segmentation | mesh_segmentation |
P3-SAM |
| Mesh retopology | mesh_retopology |
AutoRemesher (default), Instant Meshes, Trimesh Decimate |
| Mesh UV unwrapping | uv_unwrapping |
xatlas |
| Mesh editing (text or image) | text_mesh_editing / image_mesh_editing |
VoxHammer |
| Auto rigging | auto_rig |
SkinTokens (full GLB, recommended), UniRig (template VRM) |
| Text to Motion (Kimodo) | text_to_motion |
Kimodo SOMA-RP-v1.1, into studio motion JSON, into VRM/rigged-GLB playback |
| Image to Gaussian Splat | image_to_splat |
TripoSplat (1 photo), WorldMirror 2.0 (2+), COLMAP (3+) |
| Image to World | image_to_world |
weftspun_image_to_world (a splat environment, plus optional TRELLIS.2 props) |
| Avatar from Image | a client pipeline | TRELLIS.2 mesh, into a UniRig template rig, into a GLB |
| Avatar From Photo | client only | AvatarSDK, not 3DAIGC-API |
Also shipped, client plus API: multi-image input, a primary photo plus up to seven references, on splat, world, and avatar tasks (RFD 1094); Publish RP1/OMB validate, sending a mesh job to the spatial fabric through the MSF Map Service (RFD 1100); Kimodo text-to-motion, an animation-bar prompt into a SOMA motion job into viewport playback on a VRM or a rigged GLB (KimodoMotionPromptBar.jsx, kimodoMotionLoader.js).
Not in the UI: “Part completion” (legacy upstream docs only). License-blocked on a commercial tier: PartField, PartPacker, FastMesh; see 3DAIGC-API’s own MODEL_LICENSES.md.
Gaussian splats (3DGS)
Splats live inside this app, the same SceneManager viewport as VRM and mesh workflows, not a separate product. Generation runs on the DGX, through 3DAIGC-API; viewing uses Spark.js (sparkSplatManager.js, @sparkjsdev/spark) in the main Three.js scene.
Shipped today
| Capability | Client | API (DGX) |
|---|---|---|
| Splat preview in the viewport | A SplatMesh, alongside VRM and meshes |
POST /api/v1/splat-generation/image-to-splat |
| One photo to a splat | Task Manager’s multi-select, one primary photo | TripoSplat |
| Two or more photos to a splat | The same UI; mark the best front view as primary | WorldMirror 2.0 (COLMAP as the fallback, at three or more) |
| World package load | World Library, plus worldSceneLoader.js |
POST /api/v1/world-generation/image-to-world (weftspun_image_to_world) |
| A walked, XR environment scan | Task Manager’s “Environment Scan” | POST /api/v1/world-generation/environment-scan (LingBot-Map) |
| Env-scan Phase A, into Spark | Automatic, when refine_to_3dgs is set |
Isotropic Gaussians, from a point cloud |
| Env-scan Phase B train | Separate, or train_3dgs: true |
POST /train-3dgs / env_scan_gsplat_train, 7 or 10,000 steps |
| Avatar plus optional splat | “Avatar from Image,” plus a “Gaussian splat preview” checkbox | TRELLIS.2 mesh, plus a UniRig template rig, plus an optional TripoSplat |
| Multi-image uploads | multiImageInput.js, on splat, world, and avatar tasks |
image_file_id plus reference_image_file_ids, up to eight images total |
Task types in the New Task panel: “Image to Gaussian Splat,” “Image to World (splat + props),” “Environment Scan.”
Not done yet
Splat-only world RP1: World Library’s own RP1 needs mesh props in the manifest; a pure Gaussian environment needs a prop-generation path before it can publish to OMB at all (RFD 1100 gives why). Env-scan x402 SKUs: Phase A versus Phase B billing, plus a frame-budget upsell, is roadmap work, not shipped. Gaussian-VRM/RGBAvatar body pipelines: scan-based full-body avatars, and the highest-fidelity head-attachment path, are separate from the viewport’s own TripoSplat preview, not the same code path as image-to-splat.
Where it lives, architecture
[DGX 3DAIGC-API] TripoSplat, WorldMirror/COLMAP, image-to-world, LingBot env-scan A/B, avatar mesh/rig jobs
|
[this project /] SceneManager: one renderer, one WebXR session, VRM + tools
| SparkRenderer + SplatMesh (LingBot: orientationMode none)
/xr stays an IWSDK lab for grab and locomotion regression (RFD 1090). The main app (/) runs IWSDK Option A on SceneManager: distance and proximity grab (trigger), a grip that opens a context menu or pans, and thumbstick locomotion, alongside loaded splat worlds and a VRM, in the same session.
Application feature summary
Rendering modes: Solid, Rendered, Wireframe, Skeleton, Part Colorize. File formats: GLB, GLTF, OBJ, FBX, DAE, STL, VRM; images: JPG, PNG, BMP, TGA, for image-to-3D workflows.
WebXR: VR with a floor-anchored, virtual-sky scene; AR with pass-through transparency; Samsung Galaxy XR (Chrome WebXR) as the primary on-device target; bounded-floor, local-floor, local, and viewer reference spaces (RFD 1108 gives the implementation); WebXR expression tracking when the browser exposes it, a native face relay through a companion APK when it does not (RFD 1096, RFD 1082).
Also shipped: WebGPU rendering with an automatic WebGL fallback; SSAO, Bloom, and FXAA post-processing; positional (spatial) audio; a Core3D integration for a model and materials library; a shared, mode-detecting 3D viewer (Universal3DViewer).
Avatar and VRM: a trait-based VRM character system, with a soulbound base body and equippable clothing, hair, and accessory layers; drag-and-drop texture and model overrides; Mixamo integration and Kimodo text-to-motion for animation; blend shapes, lip sync, eye tracking, and automatic blinking; an optimized VRM export with texture atlasing and mesh merging; batch VRM generation from a manifest; one-click optimization down to a single draw call.
Key components
Avatar and viewport: Scene3D, TaskManager, FileUpload, RenderModeSelector, APIStatus, SceneManager (the WebGL-based core), Shared3DViewer, Universal3DViewer, Core3DViewer, Core3DPanel, Core3DContext, Core3DService.
Character and animation: CharacterManager, AnimationManager, BlinkManager, LookAtManager, EmotionManager. State: taskStore, sceneStore, SceneContext, Core3DContext.
This project began as Open3DStudio, a WebGL-only foundation with basic 3D AIGC workflows, task management, and file import/export. The Three.js WebGPU and WebXR migration guide documents the move from that foundation to the current rendering stack.
Further reading
RFD 1094 (multi-image routing), RFD 1095 (NVIDIA XR AI), RFD 1086 (dev machine topology), RFD 1107 (world package format), RFD 1100 (spatial fabric/RP1), RFD 1084 (avatar pipeline, client side), RFD 1090 (IWSDK integration), RFD 1096 (OpenXR face tracking), RFD 1082 (the Android XR face-bridge APK), RFD 1105 (webcam/avatar control), RFD 1108 (XR floor anchoring and backgrounds), RFD 1088 (HTTPS setup), RFD 1085 (the code map).
Not yet moved to a numbered RFD, still under weftspun-3d-studio’s own thirdparty/m3/docs/ or src/components/: the Three.js WebGPU/WebXR migration guide, VR positioning, the AR/Android XR floor-anchoring fix notes, the Shared3DViewer and Core3D component READMEs, the quickstart and avatar-creation guides, the wallet-owned-assets approach, the model-format specification, the Modder documentation, and the project history page.