Skip to main content

3D & Visualization

Profy’s 3D and visualization capabilities are provided by three orthogonal plugins:

profy-visualize

Unified visualization plugin covering data charts and Three.js 3D scenes.

Tools

visualize — Inline Visualization

Generates HTML/CSS/JS visualization fragments rendered directly in the chat area via Inline Visualization.
Output: result.inline_vis → InlineVisualizationCard in chat (sandboxed iframe)

inspect_3d — Scene Diagnostics

Injects JavaScript into the target page, traverses the Three.js scene graph, and returns structured diagnostic data.
Returns:
  • scene_tree — Scene node tree (type, name, visibility, geometry info)
  • materials — Material list (type, transparency, texture count)
  • animations — Animation list (name, duration, track count)
  • performance — Performance data (draw calls, triangles, texture/geometry memory)
  • warnings — Performance warnings (over-budget alerts)
  • webgl_status — WebGL context health

Technology Stack

CDN-available libraries:
  • Three.js — 3D scenes
  • D3.js — Data-driven documents
  • Vega-Lite / Vega-Embed — Declarative charts
  • Observable Plot — Quick statistical charts
  • @visx — React data visualization

Dual-Mode Architecture

Standalone Mode (Quick Demos)

Single-file HTML with Three.js/D3 via CDN importmap:
  • Rendered instantly as Inline Visualization via the visualize tool
  • Or written to sandbox files for Widget display
  • Downloadable and works in any browser

Integration Mode (R3F)

React Three Fiber within Sites projects:
  • @react-three/fiber + @react-three/drei + @react-three/postprocessing
  • Deep integration with TanStack Start
  • All dependencies pre-baked in sandbox

Skills (18)

Covering D3, geospatial, statistical charts, Canvas 2D, Three.js data viz, React component charts, Vega-Lite declarative, accessibility visualization, strategy selection, UML architecture, scrollytelling, Gantt charts, real-time dashboards, node-link diagrams, report export, and more.

profy-game-studio

Standalone game development plugin supporting 3D and 2D games.

Supported Engines/Frameworks

Skills (9)

Game Studio router, Three.js WebGL games, React Three Fiber games, Phaser 2D games, 3D asset pipeline, game foundations, game UI, playtest QA, sprite pipeline.

Pre-baked Sandbox Dependencies

  • phaser — 2D game engine
  • @dimforge/rapier3d-compat — Physics engine (WASM)
  • Three.js ecosystem (shared with visualize)

AI 3D Generation (profy-creative extension)

AI-driven 3D content creation via Tencent Hunyuan 3D API.

generate_3d — 3D Model Generation

Generate 3D models from text descriptions, reference images, or sketches.
Supported inputs:
  • Text description (prompt)
  • Reference image (image_url)
  • Line sketch (sketch_url)

postprocess_3d — 3D Post-processing

Post-process existing 3D models.
Supported actions:
  • retopology — Retopologize (reduce faces)
  • texture — Re-texture
  • rig — Auto rigging
  • animate — Auto animation
  • uv_unwrap — UV unwrapping
  • convert — Format conversion

generate_world — World Generation (HY-World 2.0)

Generate navigable 3D worlds (3D Gaussian Splatting).
Output: 3DGS file + mesh file, automatically opens 3DGS viewer in Widget.

Visual Verification Protocol (Vision in the Loop)

All visualization/3D/game development follows an auto-iteration verification protocol:
  1. Generate/modify code
  2. Capture screenshot: browser(action="screenshot", html=<HTML>) or browser(action="screenshot", url="localhost:5173")
  3. Self-analyze the screenshot (blank? missing elements? wrong layout?)
  4. If ANY issue found → fix → go to step 2
  5. Loop until visually correct, then present to user

Performance Budget

Standalone Template

Key Constraints

  1. Must expose scene: window.__THREE_SCENE__ = scene and window.renderer = renderer, otherwise inspect_3d won’t work
  2. Must handle resize: All standalone demos must respond to window size changes
  3. Must have interaction controls: OrbitControls or PresentationControls
  4. Limit pixel ratio: renderer.setPixelRatio(Math.min(devicePixelRatio, 2))
  5. Canvas needs height: R3F’s <Canvas> parent must have explicit height

MCP Bridge Plugins (Desktop Only)

For professional 3D modeling, Desktop users can connect local apps via MCP Bridge plugins: These plugins are declarative (no runtime code), connecting to local MCP servers via mcpServers config (e.g., uvx blender-mcp).