Personal CAD projects designed with OpenSCAD and sliced with Orca Slicer.
Each project is in its own subdirectory under projects/:
- rack - 1U rack shelf device mounts (Apple TV mount, retention strap, WiiM Amp bracket)
# Clone with submodules git clone --recurse-submodules https://github.com/shirhatti/cad.git cd cad # Or initialize submodules after cloning git submodule update --init --depth 1 # Optional: Enter Nix development environment nix develop # Build all projects just build # Check syntax just check # Render and slice specific project just render rack__rack_shelf_apple_tv_mount just slice rack__rack_shelf_apple_tv_mountjust build- Render all.scadfiles to STLjust render <name>- Render a specific file with timestampjust gui <name>- Open file in OpenSCAD GUIjust preview <name>- Generate PNG previewjust check- Syntax check all filesjust clean- Remove build artifacts
just slice <name>- Slice STL to 3MF with embedded G-codejust open-slice <name>- Open sliced 3MF in Orca Slicerjust prepare <name>- Full workflow: render → slice → open
just watch- Auto-rebuild all files on changesjust watch-file <name>- Auto-rebuild specific file
- Create project directory in
projects/<project-name>/ - Add
.scadfiles and project README - Run
just buildto render STL files - Run
just slice <project>__<model>to generate G-code
Printer profiles are loaded from the .orca-slicer git submodule (OrcaSlicer upstream). Default settings:
- Printer: Bambu Lab A1 (0.4mm nozzle)
- Process: 0.20mm Standard layer height
- Filament: Generic PLA
To change settings, edit variables in justfile:
_orca_machine_profile := ".orca-profiles-local/BBL/machine/..." _orca_process_profile := ".orca-slicer/resources/profiles/BBL/process/..." _orca_filament_profile := ".orca-slicer/resources/profiles/BBL/filament/..."See .orca-profiles-local/README.md for details on profile overrides.
GitHub Actions automatically validates all models on every push:
- Syntax Check - Validates OpenSCAD syntax
- Rendering - Generates STL files from all
.scadmodels - Slicing - Generates 3MF files with embedded G-code
- Validation - Ensures no slicing errors occurred
Build artifacts (STL, 3MF, logs) are uploaded and available for download from the Actions tab.
- Create a new directory:
projects/<project-name>/ - Add your
.scadfiles - Add a
README.mddescribing the project - Commit and push - CI will automatically validate
Files are named <project-name>__<model-name>.stl in artifacts to avoid conflicts.