DwarvenModeller
Headless, stateless 3D clay modeller. Part of the DwarvenSuite.
Text-first. No GUI. No viewport. No mouse required. The blind human artist and the Claude AI instance use the same interface. Accessibility is not a feature -- it is the architecture.
Philosophy
- Digital clay, not CAD -- think in shapes and relationships, not vertices and edge loops
- Stateless -- every operation is a single command; no persistent process, no session state
- Text-first -- all feedback is readable by screen readers, AI instances, and humans equally
- Headless -- runs anywhere: terminal, cron, AI tool calls, CI pipelines
What it does
Model in 3D using plain text operations. Each --op transforms the scene and saves.
--feedback tells you where everything is in human spatial language.
Export to POV-Ray, PNG, SVG, OBJ, STL, glTF, and more.
Installation
pip install dwarvenmodeller
Or from source:
git clone https://github.com/gitdwarf/DwarvenModeller.git
cd DwarvenModeller
pip install -e .
Requires Python 3.10+. POV-Ray is optional (for photorealistic renders).
Quick start
# Create a new scene
dwarvenmodeller --new mysculpt
# Add shapes
dwarvenmodeller --file mysculpt.dms --op "add type=sphere id=head radius=10"
dwarvenmodeller --file mysculpt.dms --op "add type=cube id=body width=6 height=8 depth=5 fill=coral"
# Check what you have
dwarvenmodeller --file mysculpt.dms --feedback
# Move things
dwarvenmodeller --file mysculpt.dms --op "move target=body down=5"
# Export
dwarvenmodeller --file mysculpt.dms --export "format=png out=mysculpt.png"
# Load a sample scene
dwarvenmodeller --file aldric --feedback
Sample scenes
Installed to ~/.dwarvenmodeller/samples/ on first run:
aldric.dms-- 30-object face sculpture, all primitive types demonstratedbench.dms-- calibration scene, all 6 cardinal directions labelledbox3.dms-- DwarvenArchive icon: open box with documentsbenchmark.dms-- export regression testing scene
Operations
dwarvenmodeller --help-ops
Shapes
sphere cube cylinder cone capsule torus plane
icosahedron tetrahedron octahedron dodecahedron text null
Exports
png png_native povray svg obj stl glb gltf x3d braille spatial txt
Python API
import dwarvenmodeller as dm
scene = dm.Scene.load('mysculpt.dms')
dm.op_add(scene, {'type': 'sphere', 'id': 'head', 'radius': '10'})
print(dm.generate_feedback(scene, tty=False))
dm.export_png_native(scene, 'preview.png', size=512)
scene.save('mysculpt.dms')
Part of DwarvenSuite
All tools follow the same philosophy: small, fast, correct, as few dependencies as possible.
Author
thedwarf -- gitdwarf
Support / Tip Jar
If you find DwarvenModeller useful, you can support the project:
Licence
Individual use: free. Use it, sell what you make with it, no payment needed.
Business/entity use: USD $1,000 one-time fee. Any company, LLC, sole trader, or other legal entity must purchase a commercial licence. Pay via PayPal: https://www.paypal.com/paypalme/gitdwarf
Questions: https://github.com/gitdwarf/DwarvenModeller/issues
Run dwarvenmodeller --license for full terms.
Metadata
Release files for dwarvenmodeller 0.3.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dwarvenmodeller-0.3.5.tar.gz | 86.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dwarvenmodeller-0.3.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 177.9 kB
Release files / dwarvenmodeller-0.3.5.tar.gz
| Download URL | dwarvenmodeller-0.3.5.tar.gz |
|---|---|
| Size | 86.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bf3026e1858c36dfa876d600db9b95383b72a803f97cd2a3e2d587ccf48d51a3
|
|
BLAKE2b-256 checksum How to use checksums |
52dff4716d79fb15dbc1e2852c4ad574a477c28cc07a4a8370c1542eba82324b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / dwarvenmodeller-0.3.5-py3-none-any.whl
| Download URL | dwarvenmodeller-0.3.5-py3-none-any.whl |
|---|---|
| Size | 91.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
06fb7c7f403c2d2390b8c0c66be8e6013cce1dd1c4e383c39f69bd6c16a505d4
|
|
BLAKE2b-256 checksum How to use checksums |
fb1cc5a3c2deeb6504802f9a1e9efd06770aa1c982f1f04fe20b05d8f861dcfd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|