npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@lazyingart/labcanvas

v0.1.0

Published

AgInTi LabCanvas: agentic studio for editable scientific figures, CAD devices, and experiment design.

Readme

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

LazyingArt banner

| Donate | PayPal | Stripe | | --- | --- | --- | | Donate | PayPal | Stripe |

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 | | PCB manufacturing | KiCad HYBEC lamp board, DRC/ERC, JLCPCB Gerber ZIP | pcb/hybec-hbl-273-g4 | | 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 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 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 · 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.