|
1 | 1 | # stldice
|
| 2 | + |
2 | 3 | Experimental code to work with STL and voxelized designs in Go
|
| 4 | + |
| 5 | +## Overview |
| 6 | + |
| 7 | +Traditional CAD tools were designed to perform constuctive solid geomtery (CSG) |
| 8 | +(aka "Boolean") operations on simple, regular shapes such as cylinders, cubes, |
| 9 | +spheres, and toroids. However, as 3D printers are continually producing higher |
| 10 | +resolution parts, the designs being printed are becoming more complex. The |
| 11 | +existing tools provided by major CAD corporations simply are not capable of |
| 12 | +using the traditional algorithms that got them this far, even when running |
| 13 | +on distributed machines in large data centers. The algorithms themselves have |
| 14 | +exhausted their usefulness. |
| 15 | + |
| 16 | +It is time for a paradigm shift. |
| 17 | + |
| 18 | +## Voxels |
| 19 | + |
| 20 | +Voxels are the paradigm shift that is needed. Just as desktop (2D) printers |
| 21 | +started out simple in the form of dot matrix printers and have improved |
| 22 | +exponentially in quality, 3D printers are experiencing the same fantastic |
| 23 | +progression. Likewise, the concept of rasterizing 2D images into pixels |
| 24 | +translates into 3D by rasterizing designs into 3D pixels or "voxels". |
| 25 | +Using this technique, a design can be rasterized at any desired resolution, |
| 26 | +as high as the 3D printer supports. |
| 27 | + |
| 28 | +The greatest advantage of voxels, though, is the ability to perform extremely |
| 29 | +detailed and complex boolean operations that traditional mesh algorithms are |
| 30 | +not able to do. |
| 31 | + |
| 32 | +This repo provides a set of tools that enable high resolution |
| 33 | +[STL](https://en.wikipedia.org/wiki/STL_(file_format)) |
| 34 | +designs to be diced, cut, then recontructed back to STL so that the large corpus |
| 35 | +of tools available today can be used to further manipulate the meshes and so |
| 36 | +that the designs can be printed on any 3D printers. |
| 37 | + |
| 38 | +The suite of tools consists of: |
| 39 | + |
| 40 | +* `binvox` - package to read/write binvox files |
| 41 | +* `stl` - package that provides STL merge capabilities |
| 42 | +* `stl2svx` - experimental Kubernetes cluster to batch process voxel designs |
| 43 | +* `stldice` - dices up STL meshes into one or more |
| 44 | + [`vox`](https://raw.githubusercontent.com/ephtracy/voxel-model/master/MagicaVoxel-file-format-vox.txt) |
| 45 | + files |
| 46 | +* `tri2stl` - combines `tri` files back into STL mesh files |
| 47 | +* `voxcut-dice` - writes to stdout many `voxcut` commands to cover a full model |
| 48 | +* `voxcut` - performs boolean operations on `binvox` files |
| 49 | +* `vox2tri` - converts `vox` files to `tri` files |
| 50 | +* `vshell` - start of experiment to represent a voxel model by its shell only |
| 51 | + |
| 52 | +---------------------------------------------------------------------- |
| 53 | + |
| 54 | +Enjoy! |
| 55 | + |
| 56 | +---------------------------------------------------------------------- |
| 57 | + |
| 58 | +# License |
| 59 | + |
| 60 | +Copyright 2018 Glenn Lewis. All Rights Reserved. |
| 61 | + |
| 62 | +Licensed under the Apache License, Version 2.0 (the "License"); |
| 63 | +you may not use this file except in compliance with the License. |
| 64 | +You may obtain a copy of the License at |
| 65 | + |
| 66 | + http://www.apache.org/licenses/LICENSE-2.0 |
| 67 | + |
| 68 | +Unless required by applicable law or agreed to in writing, software |
| 69 | +distributed under the License is distributed on an "AS IS" BASIS, |
| 70 | +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 71 | +See the License for the specific language governing permissions and |
| 72 | +limitations under the License. |
0 commit comments