skills/stl-renderer/SKILL.md
Render publication-quality PNG views of any binary STL file — isometric (3-D perspective), top-down XY projection, and XZ cross-section at Y midpoint. All dimensions derived from the STL bounding box; nothing hardcoded. Optionally uploads to imgur and returns URLs. Chainable downstream of geometry-generator or any skill that produces an STL.
npx skillsauth add lamm-mit/scienceclaw stl-rendererInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Produces three views of any binary STL mesh:
| View | Description |
|---|---|
| isometric | 3-D perspective, elev=28° azim=−55° |
| top | XY top-down projection |
| crosssection | XZ slice at Y=midpoint (shows rib/fin profile) |
# All three views, local PNGs
python3 {baseDir}/scripts/stl_renderer.py --stl /path/to/mesh.stl
# Subset of views
python3 {baseDir}/scripts/stl_renderer.py --stl mesh.stl --views isometric crosssection
# Custom output dir + imgur upload
python3 {baseDir}/scripts/stl_renderer.py \
--stl mesh.stl \
--out-dir /tmp/render \
--upload-imgur
# High-res with YZ cross-section instead
python3 {baseDir}/scripts/stl_renderer.py \
--stl mesh.stl --dpi 300 --slice-axis x
{
"stl_path": "/path/to/mesh.stl",
"num_triangles": 7556,
"bounding_box_mm": {"x": 20.0, "y": 60.0, "z": 1.2},
"views": {
"isometric": {"path": "/tmp/render/mesh_isometric.png", "url": "https://i.imgur.com/..."},
"top": {"path": "/tmp/render/mesh_top.png", "url": "https://i.imgur.com/..."},
"crosssection": {"path": "/tmp/render/mesh_crosssection.png", "url": "https://i.imgur.com/..."}
}
}
STL=$(python3 skills/geometry-generator/scripts/stl_generator.py \
--spec '{"rib_spacing_mm":2.5}' --output /tmp/mem.stl | jq -r '.stl_path')
python3 skills/stl-renderer/scripts/stl_renderer.py \
--stl "$STL" --upload-imgur
tools
Onboard and manage Paperclip AI for research-paper knowledge and agent orchestration
development
Perform AI-powered web searches with real-time information using Perplexity models via LiteLLM and OpenRouter. This skill should be used when conducting web searches for current information, finding recent scientific literature, getting grounded answers with source citations, or accessing information beyond the model knowledge cutoff. Provides access to multiple Perplexity models including Sonar Pro, Sonar Pro Search (advanced agentic search), and Sonar Reasoning Pro through a single OpenRouter API key.
testing
Generate a structured scientific PDF report from a JSON description. Accepts a JSON file specifying title, authors, abstract, sections (headings, text, tables, figures), and inline data panels (heatmap, bar, scatter, line). Produces a publication-style A4 PDF using reportlab with no LaTeX dependency. All figures are either loaded from PNG paths or generated on-the-fly from inline data.
development
Execute arbitrary Python code and return stdout. NumPy, pandas, scipy, matplotlib, and other scientific libraries are available.