Skip to main content

openscad-exporter

Bulk-export OpenSCAD models from CSV or customizer JSON parameter sets.

Requirements

Requires an OpenSCAD binary that supports --export-format param (OpenSCAD 2021.01 development snapshots or the 2024.xx stable release and later).

Install

uv sync

Usage

# Generate a single-row CSV of a SCAD file's default parameter values.
uv run openscad-exporter scad-to-csv path/to/model.scad --output params.csv

# Convert a CSV (one parameter set per row, with an `exported_filename` column)
# into an OpenSCAD customizer JSON file.
uv run openscad-exporter csv-to-json params.csv --scad path/to/model.scad --output model.json

# Export every parameter set to STL (or off/amf/3mf/dxf/svg/png).
uv run openscad-exporter export path/to/model.scad --from-csv params.csv --output-dir out
uv run openscad-exporter export path/to/model.scad --from-json model.json --output-dir out --format stl

PNG-specific camera flags (--camera, --imgsize, --colorscheme, --viewall, --render) only apply with --format png.

OpenSCAD binary is discovered via --openscad-path, $OPENSCAD_BINARY, PATH, then known platform locations.

Examples

These examples use tests/fixtures/rocket.scad, a small parametric rocket with the customizer parameters rocket_d, rocket_h, head_d, head_h, wing_w, many, wing_l, wing_h, and $fn.

Minimal CSV

Only the exported_filename column is required. Any parameter you leave out keeps its default value from the .scad file.

exported_filename,rocket_h
short,60
tall,150

Export both variants to STL:

uv run openscad-exporter export tests/fixtures/rocket.scad \
    --from-csv rockets.csv --output-dir out --format stl

You'll get out/short.stl and out/tall.stl.

Multi-parameter CSV

Override several parameters per row:

exported_filename,rocket_d,rocket_h,head_d,wing_w,many
slim,20,120,30,2,3
classic,30,100,40,2,3
chunky,50,80,60,3,4

Nested directory layout

Slashes in exported_filename create subdirectories under --output-dir:

exported_filename,rocket_h
small/v1,60
small/v2,80
large/v1,150
uv run openscad-exporter export tests/fixtures/rocket.scad \
    --from-csv rockets.csv --output-dir out --format stl

Produces:

out/
├── large/v1.stl
└── small/
    ├── v1.stl
    └── v2.stl

PNG previews

Render each row as a 512×512 PNG with the auto-fit camera:

uv run openscad-exporter export tests/fixtures/rocket.scad \
    --from-csv rockets.csv --output-dir previews \
    --format png --viewall --imgsize 512,512

Discovering parameters

If you don't yet have a CSV, dump the SCAD file's defaults to seed one:

uv run openscad-exporter scad-to-csv tests/fixtures/rocket.scad --output rockets.csv

This writes a single default row with every customizer parameter as a column. Duplicate it, edit the values, and re-run export.

Release files for openscad-exporter 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openscad-exporter 0.1.0
File Size Uploaded
openscad_exporter-0.1.0.tar.gz 10.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openscad-exporter 0.1.0
File Interpreter ABI Platform
openscad_exporter-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.6 kB

Release files / openscad_exporter-0.1.0.tar.gz

Download URL openscad_exporter-0.1.0.tar.gz
Size 10.5 kB
Tags Source
SHA-256 checksum
How to use checksums
248061a38770ebc4550ddc8ae5b8b71b09567cb3d789aa0d9486d70911bc6064
BLAKE2b-256 checksum
How to use checksums
04243f24d509a92ee1394486d34a32cfe5afebbc3e8e7ea835c17b3f83a90891
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 17, 2026.

Transparency log

Release files / openscad_exporter-0.1.0-py3-none-any.whl

Download URL openscad_exporter-0.1.0-py3-none-any.whl
Size 14.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f035669e348b50e762127acff284d7f0017fdba7c7e2625771f0926ea16b6d23
BLAKE2b-256 checksum
How to use checksums
0fbd4a39bf8477413d9d465f7875e908f9f05a103bb586df0508da9e2d55e20d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page