{"id":14981243,"url":"https://github.com/nimadez/voxel-builder","last_synced_at":"2026-04-22T19:04:33.513Z","repository":{"id":63171397,"uuid":"565157149","full_name":"nimadez/voxel-builder","owner":"nimadez","description":"Voxel-based 3D modeling application","archived":false,"fork":false,"pushed_at":"2026-04-18T20:11:30.000Z","size":31710,"stargazers_count":155,"open_issues_count":0,"forks_count":34,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-04-18T20:35:11.819Z","etag":null,"topics":["babylon-js","electron","glb","gltf","magicavoxel","modeling","painting","path-tracing","pixels","symmetry","terrain","three-gpu-pathtracer","three-js","three-mesh-bvh","voxel-engine","voxel-generator","voxelization","voxelizer","voxels"],"latest_commit_sha":null,"homepage":"https://nimadez.github.io/voxel-builder/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nimadez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-11-12T14:17:37.000Z","updated_at":"2026-04-18T20:10:22.000Z","dependencies_parsed_at":"2023-12-26T20:57:59.664Z","dependency_job_id":"dd22e81f-c371-48ae-8cfb-291a67f2fbfe","html_url":"https://github.com/nimadez/voxel-builder","commit_stats":null,"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"purl":"pkg:github/nimadez/voxel-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimadez%2Fvoxel-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimadez%2Fvoxel-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimadez%2Fvoxel-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimadez%2Fvoxel-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nimadez","download_url":"https://codeload.github.com/nimadez/voxel-builder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nimadez%2Fvoxel-builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31986325,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"ssl_error","status_checked_at":"2026-04-18T20:23:29.375Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["babylon-js","electron","glb","gltf","magicavoxel","modeling","painting","path-tracing","pixels","symmetry","terrain","three-gpu-pathtracer","three-js","three-mesh-bvh","voxel-engine","voxel-generator","voxelization","voxelizer","voxels"],"created_at":"2024-09-24T14:03:11.892Z","updated_at":"2026-04-18T22:01:11.925Z","avatar_url":"https://github.com/nimadez.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Voxel Builder\n\n![screenshot](media/screenshot.png?raw=true \"Screenshot\")\n\n### **Voxel-based 3D Modeling Application**\n**Model . Render . Export**\u003cbr\u003e\n\n[https://nimadez.github.io/voxel-builder/](https://nimadez.github.io/voxel-builder/)\n\n[Changelog](https://github.com/nimadez/voxel-builder/releases)\u003cbr\u003e\n[Installation](https://github.com/nimadez/voxel-builder#installation)\u003cbr\u003e\n[Wiki](https://github.com/nimadez/voxel-builder/wiki)\u003cbr\u003e\n[Known Issues](https://github.com/nimadez/voxel-builder#known-issues)\u003cbr\u003e\n[FAQ](https://github.com/nimadez/voxel-builder#faq)\u003cbr\u003e\n[Bug Report](https://github.com/nimadez/voxel-builder/issues)\n\n## Features\n\n**File I/O**\n- Save and load JSON\n- Save and load MagicaVoxel VOX\n- Export to GLB, GLTF, OBJ, STL, PLY\n- Localstorage, snapshots, quicksave, undo/redo\n- Backup and share snapshots in a ZIP archive\n\n**Model and Paint**\n- High performance voxel engine\n- Generators *(terrain, cube, sphere, isometric...)*\n- Interactive modeling toolsets\n- Symmetric drawing and painting\n- Voxel transforms and manipulation\n- Color groups and layering options\n\n**Rendering**\n- Three.js Sandbox\n- Three.js GPU path tracer\n- Basic PBR rendering\n- Post-process effects\n\n**Voxelization**\n- Fast BVH method\n- Model voxelizer *(GLB, OBJ, STL, PLY)*\n- Image voxelizer\n- Text voxelizer *(unicode \u0026 emoji)*\n\n**Export Meshes**\n- Bake voxels to editable meshes\n- Unbake exported GLB back to voxels\n- glTF compatible editor\n\n**Extensibility**\n- ES modules\n- User startup project\n- Blender importer script\n\n**More**\n- Average startup time 300 ms *(after the first launch)*\n- Unique handcrafted user-interface\n- Minimum dependency, portable, online and offline\n- Ad-free, no trackers, no logging\n\n## Supported Browsers\n- Electron *(recommended)*\n- Mozilla Firefox *(desktop/mobile)*\n- Google Chrome *(desktop/mobile)*\n\n\u003e - PWA A2HS-ready *(add to home screen)*\n\u003e - For the best experience, a tablet with pen or Wacom is recommended.\n\n## Installation\n#### Clone or [Download](https://github.com/nimadez/voxel-builder/archive/refs/heads/main.zip) the repository\n```\ngit clone https://github.com/nimadez/voxel-builder\ncd voxel-builder\n```\n#### [Download Electron](https://github.com/electron/electron/releases)\n```\nLinux:   electron-v*-linux-x64.zip\nWindows: electron-v*-win32-x64.zip\n```\nFor ease of use, extract the zip file into the \"**voxel-builder/electron**\" directory.\n#### Run\nStart with Electron\n```\ncd voxel-builder\nelectron .\n\n$ sh run-electron.sh\n\u003e run-electron.bat\n```\nStart with Node.js\n```\ncd voxel-builder\nnode server.js\n```\n#### Update\n*Makes a backup archive, and ignoring the \"/electron\" directory.*\n```\ncd voxel-builder\npython3 update.py\n```\n\n## Known Issues\n\n#### Low FPS at higher voxel volumes\n\u003e Electron is recommended for working with a large number of voxels.\u003cbr\u003e\nAlso, the FPS depends on many factors, such as the material (CEL is faster) and the distance between the camera and the model. Rendering a dense Thin volume at close range greatly increases GPU load.\n\u003e- Use \"Minimal UIX\" to save battery on mobile devices. (PBR-free)\n\u003e- Do not enable the \"Frosted Glass UI\" option.\n\u003e- Use XFORM \u003e Optimize to reduce the volume of voxels.\n\u003e- Note that this application runs on a web browser and you shouldn't expect much.\n\n#### Delay in drawing strokes\n\u003e If you draw and it doesn't, it means the builder is working, you are drawing faster than your hardware and browser will allow. (latency \u003e150 ms)\n\n#### Error: Exceeded the quota\n\u003e Browser storage is limited, use Electron for much higher capacity.\n\n#### Import GLB:\n##### Attributes error (voxelization)\n\u003e Multiple meshes need to have the same properties or they won't merge, the only solution is to merge meshes before exporting to GLB.\n##### Morphtarget error (voxelization)\n\u003e We do not support geometry animations.\n\n#### Import PLY: Throw RangeError (voxelization)\n\u003e They are often a piece of a larger model data.\n\n#### Wacom tablet crashes randomly and throws warning on Chrome (Linux)\n\u003e Warning: BJS - Max number of touches exceeded. Ignoring touches in excess of 2.\u003cbr\u003eThis problem is related to Babylon.js and nothing can be done.\n\n## FAQ\n\n#### Why isn't there a layering feature and a layer list?\n\u003e You can have 16,777,216 layers (color groups), the layering system in this app is determined by colors, even a change in the brightness of a color creates a new group that can contain hundreds of voxels.\u003cbr\u003e\n\u003e So groups are automatically created, merged, or deleted based on color. You can even hide, delete, select, paint, transform, or duplicate color groups.\n\n#### Why can't I freely transform 3D objects like in other 3D software?\n\u003e There are no objects, you work with a grid of voxels, the XFORM feature only mimics the transformation of 3D objects, you just grab a piece of connected voxels and move them.\n\n#### Can two voxels be in the same position?\n\u003e Never, even if they have different colors, the system will automatically delete one.\n\n#### Why isn't there an option to export raw voxels as GLB?\n\u003e GLB has a special use in this application, you can save and retrieve voxel data using baked meshes, exporting raw voxels to GLB leads to interference and errors when loading it using the \"Load Bakes\" option.\n\n#### What are the methods for saving and loading voxel data?\n\u003e -- **Save to JSON** *(includes scene configs, human-readable, fastest)*\u003cbr\u003e\n\u003e -- **Export baked meshes to GLB** *(uses 'Load Bakes', supports Blender and other 3D software, slower)*\u003cbr\u003e\n\u003e -- **Save snapshots to ZIP archive** *(easy to share, browser storage limits, speed is variable)*\u003cbr\u003e\n\u003e -- **Save to VOX format** *(supports MagicaVoxel, very fast)*\n\n#### Will WebGPU be supported?\n\u003e It was supported to some extent before, but was removed due to unnecessary complexity. But once it matures enough to be enabled by default in browsers, this upgrade will be possible with a few simple changes.\n\n#### How to merge vertices after export to GLB?\n\u003e 1- Open exported GLB file in Blender\u003cbr\u003e\n\u003e 2- Go to \"Modeling\" tab and choose vertex selection mode\u003cbr\u003e\n\u003e 3- Select all vertices (Ctrl + A)\u003cbr\u003e\n\u003e 4- Mesh \u003e Clean Up \u003e Merge by Distance\n\n#### How to run Blender importer script?\n\u003e 1- Save project to JSON\u003cbr\u003e\n\u003e 2- Open Blender and go to \"Scripting\" tab\u003cbr\u003e\n\u003e 3- Click \"Open\" and select \"blender-importer.py\"\u003cbr\u003e\n\u003e 4- Run the script and select a JSON file\n\n#### How to go back to the previous version?\n```\ngit clone https://github.com/nimadez/voxel-builder\ncd voxel-builder\ngit log -2 (copy the hash of the previous commit)\ngit reset --hard $HASH\n```\n\n## History\n```\n↑ Advancing in the Renaissance Bubble\n↑ A fundamental overhaul of the core\n↑ Core initialization!\n↑ Rendering was left to Three and three-gpu-pathtracer\n↑ ES6 (the original index.html playground was moved)\n↑ x1.5 faster startup (2s to 300ms)\n↑ Migrating to Linux: Firefox ready\n↑ High performance GPU picking system\n↑ Voxel engine updated to thin-instances (64k to 512k)\n↑ The world moved (from 0.0 to 0.5 center to avoid 0.5)\n↑ Real-time GPU path tracing\n↑ Introducing ES modules\n↑ Advancing to the next level (bakery)\n↑ Changed default handiness to right-handed coordinate\n↑ New SPS particles to build the world\n↑ 2019 - I wrote a playground for learning Babylon.js\n```\n\nVersion 3.0.0 *(BJS 4)* to 4.2.2 *(BJS 6)*\u003cbr\u003e\n![screenshot](media/devshots.jpg?raw=true \"Screenshot\")\n\n## License\nCode released under the [GPL-3.0 license](https://github.com/nimadez/voxel-builder/blob/main/LICENSE).\n\n## Credits\n- [Babylon.js](https://www.babylonjs.com/)\n- [Three.js](https://threejs.org/)\n- [Three-mesh-bvh](https://github.com/gkjohnson/three-mesh-bvh)\n- [Three-gpu-pathtracer](https://github.com/gkjohnson/three-gpu-pathtracer)\n- [Electron](https://www.electronjs.org/)\n- [MagicaVoxel](https://ephtracy.github.io/)\n- [Google Material Icons](https://github.com/google/material-design-icons)\n- [Reinvented Color Wheel](https://github.com/luncheon/reinvented-color-wheel)\n- [JSZip](https://github.com/Stuk/jszip)\n- [Blender](https://blender.org/)\n- [Inkscape](https://inkscape.org/)\n- [GIMP](https://www.gimp.org/)\n- [Sketchfab](https://sketchfab.com/)\n- [KhronosGroup](https://github.com/KhronosGroup/)\n- [Shadertoy](https://www.shadertoy.com/)\n- [vengi](https://vengi-voxel.github.io/vengi/)\n#\n- [Allen Hastings](https://www.linkedin.com/in/allenhastings)\n- [David Catuhe](https://twitter.com/deltakosh)\n- [Erich Loftis](https://github.com/erichlof)\n- [Eric Heitz](https://eheitzresearch.wordpress.com/772-2/)\n- [Evan Wallace](https://github.com/evanw)\n- [Garrett Johnson](https://github.com/gkjohnson)\n- [Inigo Quilez](https://www.iquilezles.org/)\n- [knightcrawler25](https://github.com/knightcrawler25)\n- [Mr.doob](https://mrdoob.com/)\n#\n\n###### Available in [Babylon.js community demos](https://www.babylonjs.com/community/)\n\n\u003ca href=\"https://www.babylonjs.com/\"\u003e\u003cimg width=\"200\" src=\"https://raw.githubusercontent.com/BabylonJS/Brand-Toolkit/master/babylonjs_identity/fullColor/babylonjs_identity_color.svg\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"https://threejs.org/\"\u003e\u003cimg width=\"80\" src=\"https://upload.wikimedia.org/wikipedia/commons/3/3f/Three.js_Icon.svg\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/KhronosGroup/\"\u003e\u003cimg width=\"120\" src=\"https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/glTF_RGB_June16.svg\"\u003e\u003c/img\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnimadez%2Fvoxel-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnimadez%2Fvoxel-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnimadez%2Fvoxel-builder/lists"}