/voxel-builder

A voxel-based modeling application built using Babylon.js engine

Primary LanguageHTMLMIT LicenseMIT

Voxel Builder

Version 3.4.2

Try Live!

screenshot

A voxel-based modeling application built using Babylon.js engine
Optimized for maximum performance and minimum dependencies

Features

Project

  • New Project
  • Save and Load Project (readable vox format)
  • Import OBJ (merge and voxelize meshes)
  • Export GLB (colors and grid texture included)
  • Quick Store and Restore (local storage)
  • Memory Steps (auto-record 10 steps to undo/redo)
  • Load HDRI (lighting and background)
  • Create Grid and Plane
  • Optimize Scene
  • Debug Mode (debug layer)

Voxel Tools

  • Add (+symmetry)
  • Remove (+symmetry)
  • Transform (+symmetry)
  • Hide Voxels
  • Hide By Color
  • Freeze Visibility (delete hidden voxels)
  • Normalize Position

Color Tools

  • Dynamic Color Palette (created on the fly)
  • Paint Color (+symmetry)
  • Pick Color
  • Fill By Color

Views

  • Fullscreen
  • Fit Camera
  • Auto Rotate
  • Light Direction
  • Cube Axis
  • Symmetry Axis Plane
  • Show FPS counter and Number of voxels/vertices
  • High Quality Render (not mobile friendly)

Supported Platforms

  • Electron (+keyboard shortcuts)
  • Google Chrome (+keyboard shortcuts)
  • Partially support Google Chrome on touch devices

Keyboard Shortcuts

Key Action
SPACE Toggle Menu
W Add
A Transform
S Free Camera
D Remove
Q Paint Color
I Fill Color
E Pick Color
O Hide Voxels
P Hide By Color
H Fit Camera
F Toggle Fullscreen
F5 Reload Window
CTRL+Z Undo (previous memory)
CTRL+X Redo (next memory)

Changelog

[History]
v1: mesh instances -> performance failure
v2: hidden mesh instances, build the mesh using CSG boolean -> performance failure on events
v3: voxel is just a position and color, build the mesh using SPS particles -> highest performance

[3.3]
- update to Babylon.js 4.1
- ui improvements and re-arrangements
- lighting rework and simplified, optimized for desktop performance
- bug: remove prompt(), add numeric input fields in the Files menu
- bug: shadowGen.useBlurCloseExponentialShadowMap cause screen flashes in 4.0+, removed
- bug: fullscreen not working, fixed
[3.4]
- update to Babylon.js 4.2
- bug: local storage, getStorage() fixed
[3.4.1]
- visual enhancements
- cleanup voxelization code
- add debug mode
- add symmetry (requested)
- add keyboard shortcuts (requested)
- add memory steps (requested)
[3.4.2]
- add instructions and tips (requested)

Community Guidelines

Also available at Babylon.js Demos and Babylon.js Forum.

License

Code released under the MIT license.

Credits