VoxelFuse is a Python library for processing multi-material 3D model data. It includes the tools needed for a complete workflow from design to part fabrication, including part composition, manufacturing planning, design simulation, mesh generation, and file export. This library allows scripts to be quickly created for processing different classes of models and generating the files needed to produce them.
Created as part of a research project with IDEAlab at ASU.
Design of a part with embedded electronic components
Generation of blurred material transitions
The voxelfuse library can be installed using pip.
pip3 install voxelfuse
Gmsh is used for mesh file import and Windows/Linux binaries are included with the library.
VoxCad is used for running interactive simulations in a GUI. Windows/Linux binaries are included with the library.
A custom version of Voxelyze is used for most simulation features. Windows/Linux binaries are included with the library. To use multiprocess simulation features on Windows, WSL must be configured.
voxcraft-viz can be used to view simulation history files (must be installed separately).
Jupyter Notebook is used for some examples.
Base template for creating scripts:
# Import Library
import voxelfuse as vf
# Start Application
if __name__=='__main__':
# Create Models
model = vf.sphere(5)
# Process Models
modelResult = model.dilate(3, vf.Axes.XY)
# Create and Export Mesh
mesh = vf.Mesh.fromVoxelModel(modelResult)
mesh.export('modelResult.stl')
# Create Plot
mesh.viewer(grids=True, name='mesh')
Template for creating scripts using VoxCad simulation:
# Import Library
import voxelfuse as vf
# Start Application
if __name__=='__main__':
# Create Models
model = vf.sphere(5)
# Process Models
modelResult = model.dilate(3, vf.Axes.XY)
modelResult = modelResult.translate((0, 0, 20))
# Create simulation and launch
simulation = vf.Simulation(modelResult)
simulation.runSimVoxCad()
See cdbrauer.github.io/VoxelFuse for library documentation.
See cdbrauer.github.io/VoxelFuse/voxelfuse_examples for a list of the example scripts.
If desired, input models can be created in a .vox file format to allow different materials to be specified in a single model. This also speeds up import times compared to mesh files. My process using MagicaVoxel is as follows:
Using MagicaVoxel and the .vox format will limit you to using distinct voxel materials. The library's import function will convert these files to a data format that allows material mixing.
For more information about our work, please see:
Brauer, C., & Aukes, D. M. (2020). Automated Generation of Multi-Material Structures Using the VoxelFuse Framework. Symposium on Computational Fabrication, 1–8. https://doi.org/10.1145/3424630.3425417
Brauer, C. (2020). Automated Design of Graded Material Transitions for Educational Robotics Applications [PQDT-Global]. https://search.proquest.com/openview/3be6eafdf193c7b7271ccf714d51da9d
Brauer, C., & Aukes, D. M. (2019). Voxel-Based CAD Framework for Planning Functionally Graded and Multi-Step Rapid Fabrication Processes. Volume 2A: 45th Design Automation Conference, 2A-2019. https://doi.org/10.1115/DETC2019-98103
To cite this library, consider using:
Brauer, C., Aukes, D., Brauer, J., & Jeffries, C. (2020). VoxelFuse. https://github.com/cdbrauer/VoxelFuse