3D Projection
Render 3D objects directly on the PinePaper canvas. The 3D projection system supports five projection types, five primitive shapes, GPU-accelerated rendering, and an orbital camera.
Overview
PinePaper’s 3D projection system is a standalone zero-dependency library (~18KB minified) that renders 3D primitives as 2D polygons on the canvas. Objects can be selected, dragged, and animated alongside regular 2D items.
Projection Types
Choose how 3D objects are projected onto the 2D canvas:
| Projection | Description |
|---|---|
| Perspective | Realistic depth with foreshortening. Objects farther away appear smaller. Configurable field of view (FOV). |
| Orthographic | No depth distortion. Parallel lines remain parallel. Common in technical/engineering drawings. |
| Isometric | Equal-angle axonometric view (30° axes). Popular in game art and architectural diagrams. |
| Cabinet | Oblique projection where depth axis is drawn at half scale and 45°. |
| Cavalier | Oblique projection where depth axis is drawn at full scale and 45°. |
Primitives
Five built-in 3D shapes:
| Primitive | Description |
|---|---|
| Cube | Configurable size |
| Sphere | Configurable radius and segment count |
| Cylinder | Configurable radius and height |
| Torus | Configurable major/minor radii |
| Cone | Configurable radius and height |
Each primitive supports custom colors and rotation on all axes.
GPU Acceleration
Rendering automatically selects the best available backend:
- WebGPU compute — fastest, used when available
- WebGL2 transform feedback — fast fallback
- CPU — universal fallback
GPU acceleration activates automatically when a scene exceeds 150 faces.
Camera
The orbital camera lets you control the viewing angle:
- Position — where the camera is in 3D space
- Target — where the camera looks at (orbit center)
- Field of view — perspective distortion amount (perspective mode only)
Selecting & Dragging 3D Objects
3D objects are selectable and draggable on the canvas, just like 2D items:
- Click a 3D object to select it
- Drag to reposition it
- Animations pause automatically during drag and resume when released
- The dragged position persists across animation frames
3D Projection Showcase Template
A pre-built template demonstrates the 3D projection system with multiple primitives, rotation animations, and different projection types. Find it in the template library.
Limitations
- Standard animation presets (fade, bounce, scroll, pulse, etc.) are not supported on 3D objects. 3D objects use their own rotation animation system through the ThreeD rendering pipeline. Applying a standard animation to a 3D object will have no effect.
- 3D objects render as flat polygon fills — no texture mapping, lighting, or shadows.
- Collision detection between 3D objects is not yet available.
Tips
- Start with isometric — it’s the most visually appealing for diagrams and illustrations
- Use rotation animations — rotating 3D objects gives a strong sense of depth
- Combine with 2D items — mix 3D primitives with text and shapes for infographic-style compositions
- Adjust camera distance — move the camera further for flatter perspective, closer for dramatic depth
Related: Animations | Keyframe Editor | Templates