# Blender vs geodesic-dome-mcp — Capability Comparison

23.jun.2026 | 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 23.jun.2026)

```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.
