Skip to content

lachlanchen/AgInTi-LabCanvas

Repository files navigation

English · العربية · Español · Français · 日本語 · 한국어 · Tiếng Việt · 中文 (简体) · 中文(繁體) · Deutsch · Русский

LazyingArt banner

Homepage Tests npm package target Python MCP

AgInTi LabCanvas

Editable scientific figure and experiment-design studio for agent workflows.
Chat, preview, decompose, route, and rebuild paper figures through Blender, OpenSCAD, BioRender, AgInTi, KiCad, Unity, Unreal, and MCP-style tool bridges.

Donate PayPal Stripe
Donate PayPal Stripe

AgInTi LabCanvas showing a V-SPICE chat task with a Blender-rendered experiment setup in the canvas

What It Does

AgInTi LabCanvas is a small local control plane for agent-assisted scientific visuals and app automation. It keeps generated figures editable: an overview image can start an idea, but final outputs are rebuilt from atomic parts, scene specs, CAD files, manifests, and tool-specific artifacts.

Current Highlights

Area What is ready Entry point
Web studio Chat, bright UI, artifact canvas, backend settings, multilingual UI labcanvas web --port 8787 --open
Paper figures Exact NxM SVG grids, AgInTi image dry-run payloads, editable artifact manifest docs/EDITABLE_FIGURE_PIPELINE.md
3D setup renders JSON scene specs to Blender PNG and .blend output docs/SCENE_SPEC.md
CAD devices OpenSCAD exports and C-mount reflector adapter CAD cad/README.md
Board/CAD tasks Shared CLI and web-chat workflow for KiCad, OpenSCAD, renders, and manufacturing prep docs/BOARD_CAD_TASKS.md
PCB manufacturing KiCad HYBEC and Lumileds boards, DRC/ERC, JLCPCB Gerber ZIPs pcb
LabVIEW automation Linux install probe, MCP candidate research, stdio-to-HTTP bridge agentic_tools/labview_mcp_agent
App routing Blender, BioRender, Unity, Unreal, and custom target dispatch docs/RESEARCH.md

Quick Start

Run from a source checkout:

PYTHONPATH=src python -m agenticapp list
PYTHONPATH=src python -m agenticapp doctor
PYTHONPATH=src python -m agenticapp web --port 8787 --open
PYTHONPATH=src python -m agenticapp studio figure-grid "optical device icons 2x3" --rows 2 --cols 3
PYTHONPATH=src python -m agenticapp studio lab-task "prepare Lumileds no-resistor PCB and C-mount reflector CAD"
PYTHONPATH=src python -m unittest discover -s tests

The npm package has been renamed in this repository to @lazyingart/labcanvas, with labcanvas as the primary CLI and app-auto-action / agenticapp kept as compatibility aliases. The new npm package still needs a fresh authenticated publish; until then, use the source checkout or the previously published package name.

# After the renamed npm package is published:
npm install -g @lazyingart/labcanvas
labcanvas --version
labcanvas webapp start --port 19473

Studio Workflow

  1. Start with chat or a saved JSON scene spec.
  2. Generate overview concepts through AgInTi image payloads or another image backend.
  3. Split the figure into editable atoms: panels, icons, labels, CAD parts, renders, and TeX assembly layers.
  4. Use BioRender for academic assets, OpenSCAD for mechanical layout, Blender for 3D setup renders, and KiCad for PCB artifacts.
  5. Keep every artifact in the canvas manifest so later chat edits can target one part instead of flattening the whole figure.

Example Commands

labcanvas scene-template experiment-setup --output my-setup.scene.json
labcanvas render-scene my-setup.scene.json --dry-run
labcanvas render-scene my-setup.scene.json --output-dir output/scenes
labcanvas studio openscad examples/paper-optics-setup.scene.json
labcanvas studio lab-task "prepare Lumileds no-resistor PCB and C-mount reflector CAD"
labcanvas studio lab-task "prepare Lumileds no-resistor PCB" --mode pcb --execute
labcanvas studio dispatch blender "Prepare an editable paper figure setup"

For a local Blender bridge test:

scripts/install_blender_portable.sh
labcanvas --config configs/blender-local-command.example.json doctor
labcanvas --config configs/blender-local-command.example.json dispatch blender "Draw a welcoming modern building with a tower"

Architecture

Agent / MCP client / CLI / web chat
        |
        | dry-run, render, export, dispatch
        v
AgInTi LabCanvas
        |
        | target registry + artifact manifest
        v
Blender · OpenSCAD · BioRender · AgInTi · KiCad · LabVIEW · Unity · Unreal

Every target dispatch receives a reviewable JSON envelope:

{
  "target": "blender",
  "kind": "blender",
  "instruction": "Create a red cube at the origin",
  "payload": {},
  "metadata": {
    "source": "labcanvas"
  }
}

Copy configs/targets.example.json to labcanvas.targets.json for local ports, commands, and tokens. This override file is ignored by git.

Validation

npm test
npm run pack:dry-run
PYTHONPATH=src python -m agenticapp doctor

Keep transport behavior covered by tests before adding live editor features. Review SECURITY.md before enabling live dispatch to editor bridges or browser sessions.