blender-3d-viz
$
npx mdskill add automateyournetwork/netclaw/blender-3d-vizGenerates 3D network topology visualizations in Blender from CDP/LLDP data
- Solves the problem of visualizing network topologies in 3D for presentations and analysis
- Depends on Blender 3.0+, BlenderMCP add-on, and CDP/LLDP neighbor discovery data
- Translates network device relationships into 3D object positions and connections
- Exports final visualizations as PNG images or interactive 3D scenes for review
SKILL.md
.github/skills/blender-3d-vizView on GitHub ↗
---
name: blender-3d-viz
description: "Create 3D network topology visualizations in Blender from CDP/LLDP neighbor data"
license: Apache-2.0
user-invocable: true
metadata:
openclaw:
requires:
bins: ["python3", "uvx"]
env: ["BLENDER_HOST"]
---
# Blender 3D Network Visualization
Create stunning 3D network topology visualizations in Blender from CDP/LLDP neighbor data. Network engineers can request topology drawings via natural language, and NetClaw translates neighbor discovery data into 3D rendering commands.
## When to Use
- Visualizing network topology in 3D for presentations
- Creating topology diagrams from CDP/LLDP neighbor data
- Exporting network diagrams as PNG images
- Customizing device colors and adding labels
- Demonstrating network architecture to stakeholders
## MCP Server
- **Server**: `blender-mcp` (community MCP via uvx)
- **Command**: `uvx blender-mcp` (stdio transport)
- **Host**: Windows running Blender with BlenderMCP addon (port 9876)
- **Requirements**: Blender 3.0+, BlenderMCP addon installed and connected
## Available Tools
| Tool | Parameters | What It Does |
|------|------------|--------------|
| `get_scene_info` | None | Returns current Blender scene objects |
| `create_object` | type, name, location, scale | Creates primitives (cube, sphere, cylinder) |
| `modify_object` | name, position?, rotation?, scale? | Transform position/rotation/scale |
| `set_material` | object_name, color, metallic?, roughness? | Apply colors and materials |
| `execute_blender_code` | code | Run arbitrary Python in Blender |
## Workflow Examples
### Draw Network Topology
```bash
# Draw topology from CDP/LLDP data
"Draw the network topology in Blender using CDP data"
# Visualize neighbors for a specific device
"Visualize the CDP neighbors for core-rtr-01 in 3D"
# Create diagram from LLDP data
"Create a 3D network diagram from the LLDP data"
# Quick topology request
"Show me the network topology in Blender"
```
### Export Visualization
```bash
# Export as PNG
"Export the Blender scene as topology.png"
# Save the diagram
"Save the network diagram as a PNG file"
# Render to image
"Render the topology to an image"
```
### Customize Visualization
```bash
# Color customization
"Color router-1 red"
"Make all switches purple"
"Change the color of the firewalls to orange"
# Add labels
"Add labels to all devices"
"Label each device with its hostname"
# Highlighting
"Highlight router-1"
"Make core-rtr-01 stand out"
```
### Scene Management
```bash
# Clear scene
"Clear the Blender scene"
"Reset the 3D view"
# Query scene
"What objects are in the Blender scene?"
"List the devices in Blender"
```
## Device Color Mapping
| Device Type | Color | RGB |
|-------------|-------|-----|
| Router | Blue | (0.2, 0.4, 0.8) |
| Switch | Green | (0.2, 0.7, 0.3) |
| Firewall | Red | (0.8, 0.2, 0.2) |
| Access Point | Yellow | (0.9, 0.8, 0.2) |
| Unknown | Gray | (0.5, 0.5, 0.5) |
Device types are inferred from hostnames:
- Contains "rtr" or "router" → Router
- Contains "sw" or "switch" → Switch
- Contains "fw" or "firewall" or "asa" → Firewall
- Contains "ap" or "wap" or "wireless" → Access Point
## Integration with Other Skills
- **pyats-run**: Query CDP/LLDP neighbor data from live devices
- **suzieq-show**: Query network state from SuzieQ observability platform
- **canvas-a2ui**: Alternative 2D visualization in chat
## Error Handling
| Error Code | Meaning | Resolution |
|------------|---------|------------|
| CONNECTION_FAILED | Blender not running or addon not connected | Start Blender, click 'Connect to Claude' in BlenderMCP panel |
| ADDON_NOT_READY | Addon not connected | Press 'N' in Blender, find BlenderMCP tab, click 'Connect' |
| NO_CDP_DATA | No neighbor data available | Query network devices first via pyats-run or suzieq-show |
| TIMEOUT | First command may timeout | This is normal - retry the same command |
| EXPORT_FAILED | Export failed (window minimized) | Ensure Blender window is visible |
## Notes
- Read-only operations - no ServiceNow CR gating required
- Maximum 25 devices rendered per topology (performance limit)
- First command may timeout - subsequent commands are faster
- Requires Windows running Blender (WSL connectivity to Windows host)
- All operations logged to GAIT audit trail