{"id":13797847,"url":"https://nimadez.github.io/voxel-builder/","last_synced_at":"2025-05-13T04:32:21.969Z","repository":{"id":63171397,"uuid":"565157149","full_name":"nimadez/voxel-builder","owner":"nimadez","description":"Voxel-based 3D modeling application","archived":false,"fork":false,"pushed_at":"2025-05-10T13:56:39.000Z","size":19874,"stargazers_count":136,"open_issues_count":0,"forks_count":22,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-10T14:41:58.319Z","etag":null,"topics":["babylon-js","electron","gltf","magicavoxel","modeling","painting","symmetry","terrain","three-gpu-pathtracer","three-js","three-mesh-bvh","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":"mit","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}},"created_at":"2022-11-12T14:17:37.000Z","updated_at":"2025-05-10T13:56:42.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":34,"template":false,"template_full_name":null,"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","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253876984,"owners_count":21977629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","gltf","magicavoxel","modeling","painting","symmetry","terrain","three-gpu-pathtracer","three-js","three-mesh-bvh","voxel-generator","voxelization","voxelizer","voxels"],"created_at":"2024-08-04T00:00:34.708Z","updated_at":"2025-05-13T04:32:21.958Z","avatar_url":"https://github.com/nimadez.png","language":"JavaScript","funding_links":[],"categories":["🌍 3D/Virtual Spaces"],"sub_categories":["Design Tools"],"readme":"# Voxel Builder\n\n![screenshot](media/screenshot.png?raw=true \"Screenshot\")\n\n**Voxel-based 3D Modeling Application**\n\n**Model . Render . Export**\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- Import MagicaVoxel VOX\n- Export to GLB, GLTF, OBJ, STL\n- Local storages, snapshots, quicksave, undo\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- Color groups and voxel transforms\n\n**Rendering**\n- Three.js sandbox\n- Three.js GPU path tracer\n- Basic PBR rendering\n\n**Voxelization**\n- Fast BVH voxelization\n- 3D model voxelizer\n- Image voxelizer\n\n**Export Meshes**\n- Bake voxels to editable meshes\n- Bake voxels by color groups\n- Unbake exported GLB back to voxels\n- glTF compatible editor\n\n**Extensibility**\n- ES modules\n- WebSockets client\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, no loading screens\n\n## Installation\nInstall [Electron](https://github.com/electron/electron/releases) *(recommended)*\n```\nelectron-v*-linux-x64.zip\nelectron-v*-win32-x64.zip\n```\nClone\n```\ngit clone https://github.com/nimadez/voxel-builder\ncd voxel-builder\n```\nRun\n```\n# Start with Electron:\nelectron .\n\n# Start with Node.js:\nnode server.js\n```\nUpdate\n```\ncd voxel-builder\npython3 update.py\n```\n\n## Supported Browsers\n- Electron *(recommended)*\n- Google Chrome\n- Mozilla Firefox\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## Known Issues\nHigher than 512K is not recommended\n```\nElectron is recommended for working with a large number of voxels\n\nHigher values can have the following problems:\n- Intolerable delay when starting the renderer\n- Chrome tab may freeze or crash\n\nOf course, the number of voxels is unlimited,\nI have rendered up to 1 million voxels.\n```\nFailed to import GLB meshes for voxelization\n```\nMultiple meshes need to have the same properties or they won't merge,\nthe only solution is to merge meshes before exporting to GLB.\n```\nWacom tablet crashes randomly and throws warning on Linux (GNOME)\n```\nWarning: BJS - Max number of touches exceeded. Ignoring touches in excess of 2.\nThis problem is related to Babylon.js and nothing can be done.\n```\nError: Exceeded the quota\n```\nBrowser storage is limited, use Electron for much higher capacity.\n```\n\n## FAQ\nHow to merge vertices after export to GLB?\n```\n1- Open exported GLB file in Blender\n2- Go to \"Modeling\" tab and choose vertex selection mode\n3- Select all vertices (Ctrl + A)\n4- Mesh \u003e Clean Up \u003e Merge by Distance\n```\nHow to run Blender importer script?\n```\n1- Save project to JSON\n2- Open Blender and go to \"Scripting\" tab\n3- Click \"Open\" and select \"blender-importer.py\"\n4- Run the script and select a JSON file\n```\nHow 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↑ Unsafe WebGPU support\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 [MIT 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- [Blender](https://blender.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/nimadez.github.io%2Fvoxel-builder%2F","html_url":"https://awesome.ecosyste.ms/projects/nimadez.github.io%2Fvoxel-builder%2F","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/nimadez.github.io%2Fvoxel-builder%2F/lists"}