Thingiverse
Puzzle Cube (Randomly Generated with Python)
by Keeeal
14
Downloads
16
Likes
0
Makes
I wrote this code as an exercise in procedurally generating 3D-printable objects.
The algorithm creates six pieces that fit together to form a cube. Since the puzzle is randomly generated, even the puzzle’s creator can have the satisfaction of solving it for themselves!
For a full description of the algorithm, see [the blog post](https://jameskeal.com.au/procedurally-generating-puzzles-with-openscad-and-python).
### Requirements
First install [SolidPython](https://github.com/SolidCode/SolidPython) and [Numpy](https://numpy.org/):
```
pip install solidpython numpy
```
### Usage
To run the script:
```
python puzzle_cube.py [--size SIZE] [--shape X Y Z] [--stl]
```
Optional arguments:
- *size* — The size-length of a single cell in the puzzle. Default: 10 mm.
- *shape* — The dimensions of the puzzle. Default: (4, 4, 4)
- *stl* — Attempt to generate STL rather than SCAD files. (Requires [OpenSCAD](https://www.openscad.org/))
For example:
```
pyt
The algorithm creates six pieces that fit together to form a cube. Since the puzzle is randomly generated, even the puzzle’s creator can have the satisfaction of solving it for themselves!
For a full description of the algorithm, see [the blog post](https://jameskeal.com.au/procedurally-generating-puzzles-with-openscad-and-python).
### Requirements
First install [SolidPython](https://github.com/SolidCode/SolidPython) and [Numpy](https://numpy.org/):
```
pip install solidpython numpy
```
### Usage
To run the script:
```
python puzzle_cube.py [--size SIZE] [--shape X Y Z] [--stl]
```
Optional arguments:
- *size* — The size-length of a single cell in the puzzle. Default: 10 mm.
- *shape* — The dimensions of the puzzle. Default: (4, 4, 4)
- *stl* — Attempt to generate STL rather than SCAD files. (Requires [OpenSCAD](https://www.openscad.org/))
For example:
```
pyt
Keeeal also publishes on
1 additional models across 1 more platforms
Did you print this model? Sign in and share your make!
Sign in to leave a comment
Sign inNo comments yet – be the first!