clawdie-iso/docs/DOME-GEOMETRY-CAPABILITY.md

69 lines
3.3 KiB
Markdown
Raw Normal View History

# Blender vs geodesic-dome-mcp — Capability Comparison
2026-06-23 | OSA (mother node) | FreeBSD 15.0
## The problem
Generate geodesic dome wireframes for architectural visualization and
bill-of-materials calculation. The obvious answer was Blender — it has
`bpy.ops.mesh.primitive_ico_sphere_add()` built in.
## Before: Blender
| Metric | Value |
| -------------------- | ------------------------------------------------------------- |
| Packages installed | 53 |
| Download size | 323 MiB |
| Installed size | 1 GiB |
| Key dependencies | llvm19, ffmpeg, openimageio, opencolorio, openvdb, pulseaudio |
| Headless mode | `blender --background` (still pulls X11 deps) |
| Dome generation time | ~14s (Eevee render, 2000×2000) |
## After: geodesic-dome-mcp
| Metric | Value |
| -------------------- | ---------------------------------------------- |
| File size | 6 KB (294 lines of Python) |
| Dependencies | numpy, Pillow (already installed on all nodes) |
| Dome generation time | <1s (wireframe), sub-second (BOM only) |
| Headless | Always — no X11, no GPU, no display server |
| Outputs | Wireframe PNG + structural BOM (JSON) |
## Capability impact
| Capability | Before (Blender) | After (geodesic-dome-mcp) |
| ------------------------ | -------------------------------- | ---------------------------------- |
| Can run on 32GB USB ISO? | ❌ (1 GiB, exceeds headroom) | ✅ (6 KB, negligible) |
| Can run on 12GB RAM VPS? | ❌ (would fit disk but overkill) | ✅ (already running) |
| Can run on bare-metal? | ✅ (if installed) | ✅ (always) |
| Structural BOM? | ❌ (needs separate script) | ✅ (built-in) |
| Half-sphere mode? | Manual mesh cut | ✅ (`half=true`) |
| Connector analysis? | ❌ | ✅ (3/4/5/6-way counts) |
| Strut length table? | ❌ | ✅ (grouped by size) |
| Material cost estimates? | ❌ | ✅ (glass/polycarbonate/insulated) |
## Registering capabilities
This comparison feeds into the mother node's PostgreSQL `hive_nodes` table.
When a node registers its hardware profile, the capability derivation trigger
marks nodes that can run `geodesic-dome-mcp` (all of them — numpy + Pillow
are universal). Nodes that have Blender installed get an additional
`has_blender: true` capability for 3D rendering workloads.
## OSA as example (registered 2026-06-23)
```json
{
"hostname": "osa.smilepowered.org",
"ram_gb": 12,
"cpu_cores": 6,
"capabilities": {
"has_gpu": false,
"cpu_only": true,
"geodesic_dome_mcp": true
}
}
```
12GB RAM, no GPU, but `geodesic_dome_mcp` runs fine. No Blender needed.