Skip to content

Repository files navigation

Vecto3d logo

Vecto3d

Turn SVGs into 3D objects, directly in your browser.

Open Vecto3d · GitHub

Vercel OSS Program

Vecto3d is a free, open-source tool for giving flat SVG artwork depth, material, lighting, and motion. There is nothing to install and no account is required. Uploaded files stay in your browser.

Features

  • Upload, drag and drop, or paste an SVG.
  • Start quickly with built-in example artwork.
  • Adjust depth, bevel thickness, bevel size, and smoothness in real time.
  • Choose a material preset or tune roughness, metalness, clearcoat, and color.
  • Preview the model in multiple lighting environments and adjust their intensity.
  • Set a custom preview background and add a bloom effect.
  • Rotate the model directly in the viewport, reset changes, or enter fullscreen.
  • Export a still image, an animation, or a production-ready 3D file.
  • Use the same compact controls on desktop and mobile.

Workflow

  1. Add an SVG. Drop, paste, or select a file on the landing page. You can also choose one of the included examples.
  2. Shape it. Adjust the model depth and bevel until the geometry feels right.
  3. Finish it. Choose a material, color, environment, background, and optional bloom.
  4. Export it. Save the result in the format that fits your workflow.

Editor controls

Section Controls
Geometry Depth, bevel, thickness, size, and smoothness
Material Presets, roughness, metalness, clearcoat, and a custom color picker
Environment Lighting presets and intensity
Display Background color and bloom intensity
Export Image, 3D model, and recorded animation formats

Export formats

Format Output
PNG High-resolution still image
MP4 Recorded model rotation
GIF Short looping model rotation
STL Mesh for 3D printing and fabrication workflows
GLB Portable binary 3D model
GLTF Portable JSON-based 3D model

MP4 and GIF recording use the live WebGL preview. Turn on auto-rotate in the export panel, then choose the speed and duration before recording.

Local development

Vecto3d uses Bun as its package manager.

git clone https://github.com/lakshaybhushan/vecto3d.git
cd vecto3d
bun install
bun run dev

Open http://localhost:3000.

Run the checks before opening a pull request:

bun run lint
NODE_ENV=production bun run build

Tech stack

Project structure

vecto3d/
├── app/
│   ├── page.tsx                 # Landing and SVG input flow
│   └── edit/page.tsx            # 3D editor
├── components/
│   ├── edit/                    # Editor controls and export panel
│   ├── previews/                # Three.js model and preset previews
│   └── ui/                      # Shared interface primitives
├── hooks/                       # Browser and device hooks
├── lib/
│   ├── exporters.ts             # PNG and 3D export helpers
│   ├── video-recorder.ts        # MP4 and GIF recording
│   ├── store.ts                 # Editor state
│   └── svg-sanitizer.ts         # SVG validation and sanitization
├── public/                      # Logos, workers, and texture assets
└── styles/                      # Global styles

Privacy and browser support

SVG processing and editing happen locally in the browser. The current file is kept in session storage so it can move from the landing page into the editor without being uploaded.

Chrome and Firefox are recommended. Safari can have WebGL rendering and performance issues, so the editor shows a warning before continuing.

Contributing

Issues and pull requests are welcome. Read CONTRIBUTING.md before getting started.

Vecto3d is available under the MIT License.

Author

Made by @blakssh.

About

A super simple tool to convert your SVG's to 3D models.

Topics

Resources

Contributing

Stars

1.5k stars

Watchers

6 watching

Forks

Used by

Contributors

Languages