|
| 1 | +--- |
| 2 | +alwaysApply: true |
| 3 | +--- |
| 4 | +# 3D Objects — Design & Implementation Rules |
| 5 | + |
| 6 | +## Purpose |
| 7 | +Define consistent standards for 3D assets used in dashboard cards and other UI surfaces. |
| 8 | + |
| 9 | +## Directory Structure |
| 10 | +- Store authored assets in: `public/3d/` |
| 11 | +- Filenames use `snake_case` and map 1:1 with app identifiers. |
| 12 | +- Example: |
| 13 | + - `public/3d/ai_assistant.glb` |
| 14 | + - `public/3d/pyramid_solver.glb` |
| 15 | + |
| 16 | +## Visual Style |
| 17 | +- Corners: Prefer high-radius chamfer/rounding on visible primitives (e.g., rounded boxes). |
| 18 | +- Materials: Solid, modern materials (Physical/Standard) with tuned metallic/roughness and optional clearcoat. |
| 19 | +- Modern Look: Clean silhouettes with mid-poly detail; avoid busy textures. Accents use subtle emissive where appropriate. |
| 20 | + |
| 21 | +## Technical |
| 22 | +- Geometry: |
| 23 | + - Use rounded primitives where possible (e.g., `RoundedBoxGeometry`). |
| 24 | + - Mid-poly is acceptable for better forms; prioritize silhouette and readability in a small viewport. |
| 25 | +- Materials: |
| 26 | + - Use `MeshPhysicalMaterial` or `MeshStandardMaterial`. |
| 27 | + - Suggested baseline: `metalness: 0.2–0.5`, `roughness: 0.25–0.6`, optional `clearcoat: 0–0.3`. |
| 28 | + - Accents may use a small `emissive` for modern UI flair. |
| 29 | +- Lighting: |
| 30 | + - Use `HemisphereLight` plus one or two `DirectionalLight`s for soft, contemporary shading. |
| 31 | + - Keep lighting neutral; avoid harsh shadows that obscure silhouettes. |
| 32 | + |
| 33 | +## Integration |
| 34 | +- Card viewport is square; models must be centered and uniformly scaled to fit. |
| 35 | +- If a model is missing, render a simple procedural shape as a fallback (no UI breakage). |
| 36 | +- Procedural presets exist for rapid prototyping: `lowpoly-bot`, `pyramid`, `nodes-graph`, `workshop-tools`, `picture-frame`, `old-book`, `airplane`, `technician`. Replace with authored assets in `public/3d/` as they become available. |
| 37 | + |
| 38 | +## QA Checklist |
| 39 | +- Rounded edges are visible at normal zoom. |
| 40 | +- No z-fighting or clipping in the square viewport. |
| 41 | +- Materials read as solid and modern under default lighting. |
0 commit comments