3dMake Setup & Workflow Guide (Comprehensive)
This guide walks you through installing 3dMake, creating projects, and managing your workflow efficiently.
Part 1: Installing 3dMake
Prerequisites
Before installing 3dMake, ensure you have:
- Windows or Linux operating system (macOS is not currently supported)
- Terminal or PowerShell access
- Internet connection to download 3dMake
- At least 100 MB of free disk space
Platform Support
Supported:
- Windows (32-bit and 64-bit)
- Linux (x86-64 architecture)
Not Supported:
- macOS - Currently no macOS version is available
Step-by-Step Installation
Step 1: Download 3dMake for Your Operating System
Visit the 3dMake releases page and download the appropriate version:
Windows:
- Go to 3dMake Windows Download
- This downloads
3dmake_windows.zipto your computer - Right-click the file and select “Extract All…” (or use your preferred extraction tool)
- Remember where you extracted it (e.g.,
C:\Users\YourName\3dmakeorC:\Program Files\3dmake)
Linux:
- Go to 3dMake Linux Download
- This downloads
3dmake_linux.tar.gzto your computer - Extract it using:
tar -xzf 3dmake_linux.tar.gz - Remember where you extracted it (e.g.,
~/3dmakeor/opt/3dmake)
Step 2: Open Your Terminal
Windows:
- Press
Win + Xand select “Windows PowerShell” or “Terminal” - For screen reader users: Use
Alt + F2and typepowershellif needed
Linux:
- Open your terminal application (Terminal, Konsole, GNOME Terminal, etc.)
Step 3: Navigate to 3dMake Directory
Navigate to where you extracted 3dMake:
Windows:
cd C:\Users\YourName\3dmake
Linux:
cd ~/3dmake
For screen reader users: Use pwd (print working directory) to confirm your location.
Step 4: Run the Setup Command
From inside the 3dMake directory, run:
Windows:
.\3dm setup
Linux:
./3dm setup
Follow the prompts to configure:
- Your default printer profile (e.g., Prusa MK4, Bambu Lab)
- OctoPrint connection (if you use OctoPrint)
- AI integration (optional - for model descriptions)
- Preferred text editor
Step 5: Complete Installation
After setup finishes, 3dMake will be available from any directory. You can now use the 3dm command from your terminal.
Do not delete the original 3dMake directory where you extracted the files, as 3dMake needs to reference it.
Step 6: Verify Installation
3dm --version
You should see the installed version number. If you see an error, verify:
- You’re in the 3dMake directory
- The extraction completed successfully
- Your terminal has access to the extracted files
Step 7: Get Help
3dm help
This displays all available 3dMake commands.
Part 2: Creating and Managing Projects
What Is a 3dMake Project?
A 3dMake project is a folder structure that organizes:
- src/ folder - contains your OpenSCAD (.scad) files
- build/ folder - stores outputs that 3dMake generates (STL files, sliced GCODE, etc.)
- 3dmake.toml file - project configuration and settings
- README.md - project documentation
Creating Your First Project
Step 1: Choose or Create a Project Directory
Decide where you want your project. Examples:
Windows:
C:\Users\YourName\Documents\3d-projects\
C:\Users\YourName\Desktop\MyProject\
Linux:
~/3d-projects/
~/Documents/3d-projects/
Create the directory if it doesn’t exist:
Windows:
mkdir C:\Users\YourName\Documents\3d-projects\FirstProject
Linux:
mkdir -p ~/3d-projects/FirstProject
Step 2: Navigate Into Your Project Directory
Windows:
cd C:\Users\YourName\Documents\3d-projects\FirstProject
Linux:
cd ~/3d-projects/FirstProject
For screen reader users: Use pwd (print working directory) to confirm you’re in the right folder.
Step 3: Initialize a 3dMake Project
3dm new
This creates the project structure:
FirstProject/
+------ src/ (stores your .scad files)
+------ build/ (stores generated files: STL, GCODE, etc.)
+------ 3dmake.toml (project configuration)
+------ README.md (project documentation)
The src/main.scad file is created as a starting template.
Step 4: Verify Project Creation
Windows:
Get-ChildItem -Force
Linux:
ls -la
You should see the src/, build/, 3dmake.toml, and README.md files listed.
Part 3: Working With Your Project
Creating OpenSCAD Models
Step 1: Create or Edit OpenSCAD Files
The main model file is src/main.scad. You can edit it directly using 3dMake:
3dm edit-model
This opens src/main.scad in your configured text editor.
To edit a different model (if you create additional .scad files):
3dm edit-model -m mymodel
This opens src/mymodel.scad.
Manual File Creation:
You can also create .scad files directly in the src/ folder using your preferred text editor:
- Visual Studio Code
- Notepad++ (Windows)
- Gedit (Linux)
- Nano or Vim (terminal-based)
Step 2: Building Your Model
Before exporting, build the model from your OpenSCAD code:
3dm build
This converts your OpenSCAD code into a 3D mesh (geometry). The output is build/main.stl.
For a different model:
3dm build -m mymodel
This creates build/mymodel.stl.
Step 3: Viewing Model Information
To see statistics about your model:
3dm info
Output includes:
- Bounding box - dimensions (X, Y, Z in millimeters)
- Volume - cubic millimeters of material
- Face count - total triangles in the mesh
- Manifold status - whether model is watertight (printable)
Example output:
Volume: 1234.56 mm
Bounding Box: 50.0 x 40.0 x 30.0 mm
Faces: 2048
Manifold: Yes
Step 4: Previewing Your Model
3dMake can create flat “tactile previews” of your model (fast-printing 2D silhouettes):
3dm preview slice
This generates a preview STL and slices it (ready to print in minutes).
To print the preview directly:
3dm preview print
Available preview types:
3sil- Three silhouettes (front, left, top) - defaultfrontsil- Front-facing silhouette onlytopsil- Top-down silhouette only
Change preview type:
3dm preview -v topsil print
Step 5: Slicing and Preparing for Print
To slice your model (convert STL to GCODE for your printer):
3dm build slice
This creates both:
build/main.stl- the 3D modelbuild/main.gcode- sliced for your printer
Step 6: Printing Directly from 3dMake
If your printer is connected via OctoPrint or Bambu Labs (LAN mode):
3dm build slice print
This builds, slices, and sends directly to your printer in one command.
Or simply:
3dm build print
(The print command automatically includes slicing)
Part 4: Managing Multiple Projects
Switching Between Projects
Method 1: Navigate via Terminal
# Leave current project
cd ..
# Enter a different project
cd ../SecondProject
pwd # Verify you're in the right place
For screen reader users, always use pwd after navigating to confirm your location.
Method 2: Create a Projects Directory Structure
Create a central folder for all projects:
3d-projects/
+------ FirstProject/
| +------ src/
| +------ build/
| +------ 3dmake.toml
+------ SecondProject/
| +------ src/
| +------ build/
| +------ 3dmake.toml
+------ README.md (project index)
Method 3: Use a Project Index
Create a README.md in your 3d-projects/ folder to track all projects:
# My 3D Projects
## Project List
1. **FirstProject** - My initial test models
- Location: `./FirstProject/src/`
- Status: In progress
- Latest model: `main.scad`
2. **SecondProject** - Parametric keychain designs
- Location: `./SecondProject/src/`
- Status: Complete
- Latest model: `keychain.scad`
3. **ThirdProject** - Functional brackets for printing
- Location: `./ThirdProject/src/`
- Status: In progress
- Latest model: `bracket_assembly.scad`
Building from All Projects
To build models from all projects:
Windows:
Get-ChildItem -Directory | ForEach-Object {
cd $_.FullName
3dm build
cd ..
}
Linux/Bash:
for project in */; do
cd "$project"
3dm build
cd ..
done
Part 5: Workflow Best Practices
File Naming Conventions
Use clear, descriptive names for your .scad files:
Good:
cube_5cm.scadparametric_box_v2.scadbracket_for_motor.scadmain.scad(default project model)
Avoid:
test.scadmodel1.scadfinal_final_FINAL.scad
Understanding TOML Configuration Files
What is TOML?
TOML (Tom’s Obvious, Minimal Language) is a human-readable configuration file format. It’s designed to be simple and clear, making it easy to read and edit in any text editor.
Basic TOML Formatting Rules:
-
Key-value pairs - Each setting has a name and value separated by an equals sign:
project_name = "My Project" -
Strings use quotes - Text values must be wrapped in double quotes:
editor = "code" printer_profile = "prusa_MK4" -
Numbers don’t need quotes - Numeric values stand alone:
scale = 1.05 copies = 3 -
Boolean values are true or false - Lowercase, no quotes:
auto_start_prints = true edit_in_background = false -
Arrays use square brackets - Lists of values separated by commas:
overlays = ["supports", "PETG"] libraries = ["bosl", "braille-chars"] -
One setting per line - Each configuration on its own line
-
Comments start with # - Use for notes (not processed):
# This is my default printer printer_profile = "prusa_MK4"
How 3dMake Uses TOML:
3dMake has two TOML configuration files:
- Global config (
defaults.toml) - Settings for all your projects (run3dm edit-global-configto edit) - Project config (
3dmake.toml) - Settings specific to one project (located in your project root)
Project settings override global settings. For example, if your global config says printer_profile = "prusa_MK4" but your project’s 3dmake.toml says printer_profile = "bambu", the project setting wins.
Project Configuration (3dmake.toml)
The 3dmake.toml file in your project root contains project-specific settings:
project_name = "My Project"
model_name = "main"
printer_profile = "prusa_MK4"
overlays = []
editor = "code"
Edit your project configuration:
3dm edit-global-config
This opens your configuration file in your text editor.
Version Control (Optional)
If you’re using Git, add a .gitignore to avoid committing large build files:
Create .gitignore in your project root:
build/
*.stl
*.gcode
*.png
.DS_Store
__pycache__/
Then initialize Git:
git init
git add .
git commit -m "Initial project setup"
Backup Strategy
Regularly backup your src/ folder:
Windows:
Copy-Item -Path "src" -Destination "backups/src_$(Get-Date -Format 'yyyy-MM-dd')" -Recurse
Linux:
cp -r src backups/src_$(date +%Y-%m-%d)
Documentation
Keep a src/README.md describing each model:
# Models in This Project
## main.scad
- **Purpose:** Primary design for this project
- **Parameters:** width, height, depth
- **Last modified:** 2026-02-20
- **Notes:** Standard model for printing
## alternate.scad
- **Purpose:** Alternative design variant
- **Parameters:** width, height, depth, wall_thickness
- **Last modified:** 2026-02-15
- **Notes:** Experimental version with snap-fit features
Configuring Your Text Editor
By default, 3dMake uses:
- Windows: Notepad
- Linux: Nano (or your EDITOR environment variable)
To use a different editor, edit your global configuration:
3dm edit-global-config
Add or modify the editor line. Examples:
Windows (Visual Studio Code):
editor = "code"
Windows (Notepad++):
editor = '''C:\Program Files (x86)\Notepad++\notepad++.exe'''
Linux (Visual Studio Code):
editor = "code"
Linux (Gedit):
editor = "gedit"
Part 6: Troubleshooting
Common Issues
“3dm command not found”
Cause: 3dMake isn’t in your PATH or you haven’t completed setup.
Solution:
- Verify you extracted 3dMake and completed
3dm setup - Restart your terminal completely (close and reopen)
- Check that you’re not inside the 3dMake directory when running commands
- On Linux, ensure you’re using
./3dmif 3dMake isn’t in your PATH yet
“No such file or directory: src/main.scad”
Cause: You’re not in a valid 3dMake project directory.
Solution:
Verify you’re in the project directory:
pwd
ls -la
You should see src/, build/, and 3dmake.toml files. If not, run:
3dm new
“OpenSCAD error: syntax error at line 5”
Cause: Your .scad file has incorrect OpenSCAD syntax.
Solution:
- Open your model file:
3dm edit-model - Check the line number mentioned in the error
- Verify correct OpenSCAD syntax (matching parentheses, semicolons, etc.)
- Save and try building again:
3dm build
“Model won’t render or build”
Checklist:
- File is saved with
.scadextension - File is in the
src/folder - File has valid OpenSCAD syntax
- Build output has a specific error message (check line number)
Debug mode:
3dm build --debug
This provides more detailed error messages.
Screen reader isn’t reading 3dMake output clearly
Solution: Use the --debug flag for more verbose output:
3dm build --debug
This logs each step, making it easier for screen readers to follow.
“Permission denied” error (Linux)
Cause: 3dMake executable doesn’t have run permissions.
Solution:
chmod +x 3dm
./3dm setup
Cannot connect to printer
Cause: OctoPrint or Bambu printer settings not configured correctly.
Solution:
- Verify printer is running and connected to network
- Edit configuration:
3dm edit-global-config - Check these settings:
octoprint_host- correct IP/URLoctoprint_key- valid API keyprint_mode- set to “octoprint” or “bambu_lan”
- Test connection:
3dm build print(without actually printing first)
Part 7: Quick Reference
Essential Commands
| Command | Purpose |
|---|---|
3dm --version | Show installed version |
3dm help | Display all available commands |
3dm setup | Initial setup (run in extracted directory) |
3dm new | Initialize a new project |
3dm build | Build OpenSCAD model to STL |
3dm build slice | Build and slice to GCODE |
3dm build print | Build, slice, and send to printer |
3dm edit-model | Open main.scad in text editor |
3dm edit-model -m name | Open a specific model file |
3dm info | Show model statistics |
3dm preview print | Create and print a tactile preview |
3dm list-profiles | Show available printer profiles |
3dm list-overlays | Show available slicer overlays |
3dm edit-global-config | Edit global settings |
3dm orient print | Auto-orient and print model |
Directory Structure Reference
YourProject/
+------ src/ <- Place .scad files here
+------ build/ <- Built STL, GCODE auto-save here
+------ 3dmake.toml <- Project settings
+------ README.md <- Project documentation
Configuration Options (3dmake.toml)
Common settings you can modify:
project_name = "My Project"
model_name = "main" # Default model to build
printer_profile = "prusa_MK4" # Your printer
overlays = ["supports"] # Default slicing overlays
editor = "code" # Text editor to use
For full configuration options, see the GitHub repository: https://github.com/tdeck/3dmake
Part 8: Next Steps
Once you’re comfortable with basic projects:
- Learn parametric design - Make reusable models with variables
- Explore modules - Organize code into reusable functions
- Add libraries - Use pre-built OpenSCAD libraries (BOSL, etc.)
- Optimize workflows - Chain commands (
3dm build slice print) - Automate models - Use loops and conditionals in OpenSCAD
- Collaborate - Use Git to share projects with others
For advanced topics, see:
Sources
3dMake GitHub Repository. (2026). 3dMake - Non-visual 3D design and printing. Retrieved from https://github.com/tdeck/3dmake
3dMake Documentation. (2026). Terminal quick start guide. Retrieved from https://github.com/tdeck/3dmake/blob/main/docs/terminal_quick_start.md
OpenSCAD Community. (2025). OpenSCAD user manual. Retrieved from https://en.wikibooks.org/wiki/OpenSCAD_User_Manual
Revarbat (Ed.). (2024). BOSL - Belfry OpenSCAD Library. Retrieved from https://github.com/revarbat/BOSL/wiki