A powerful application for generating, visualizing, and exporting customizable radially symmetrical gyroid structures for 3D printing and modeling.
- Interactive GUI: Intuitive graphical interface for real-time parameter adjustment and visualization
- Command Line Interface: Generate gyroids programmatically or in scripts
- Parameter Presets: Save and load parameter configurations for reproducible designs
- Export Options: Export models as STL or OBJ files for 3D printing or further modeling
- Customizable Parameters: Fine-tune every aspect of the gyroid structure
- Mesh Statistics: View detailed statistics about your generated mesh
- Python 3.7+
- Required Python packages (installed automatically):
- numpy
- pyvista
- trimesh
- PyQt5
- pyvistaqt
- QDarkStyle
-
Clone the repository:
git clone https://github.com/tazomatalax/pyroid.git
NOTE: If you dont have "git" installed in windows, do that first. Otherwise, skip this step and just download the repo as a .zip. Save file to Downloads, and extract to Downloads, then open cmd.exe and type:
cd Downloads\pyroid
Skip to step 3.
-
Navigate to the project directory:
cd pyroid
-
Create Virtual Environment (optional but reccomended):
python -m venv venv
And activate it with (Windows):
venv\Scripts\activate
On Linux use:
source venv/bin/activate
-
Install the required dependencies:
pip install -r requirements.txt
Run the GUI with:
python main.py
Generate a gyroid from the command line:
python main.py --cli --output my_gyroid.stl
- Resolution: Higher values create more detailed structures but increase computation time
- X/Y/Z-axis Length: Dimensions of the gyroid structure
- Inner Radius: Size of the central void
- Outer Radius: Overall thickness of the structure
- Angular Scaling Factor: Affects the number of twists in the structure < 76EC li>Wall Thickness: Thickness of the gyroid walls
- Cell Radius/Height: Affects the size and spacing of the gyroid's features
- Default: Balanced parameters for general purpose use
- Fine Detail: Higher resolution and smaller cells for more intricate designs
- Thick Walls: Sturdier structure with thicker walls for easier printing
- Dense Pattern: More tightly packed patterns for a denser structure
Use the GUI to adjust parameters and generate your custom gyroid structure. Click "Generate Gyroid" to create the model and "Save STL" to export it.
Note: If you encounter any issues with PyVista, ensure that you have a compatible graphics driver installed and updated.
After export, the walls of the inner structure may need thickening. This can be accomplished using Blender:
- Open Blender and delete the default cube.
- File > Import > STL (.stl)
- Apply wireframe to better visualize the mesh.
- Apply a Solidify modifier, with 0 offset, to a thickness of your choice to the model.
- Apply a Remesh modifier to smooth things out.
- File > Export > STL (.stl)
- I found that I needed to "Cut" the model at the top (save bottom object), and the bottom (save top object) in order to have flat surfaces to print
- Slice and print!
pyroid/core.py
: Core gyroid generation logicpyroid/gui.py
: Graphical user interfacepyroid/cli.py
: Command line interfacetests/
: Test suite
This project is licensed under the MIT License - see the LICENSE file for details.