Vishal Rashmika44 downloadsProfessional UML 2.x diagrams, hardware schematics, and freehand shape recognition on a high-performance visual canvas with AI coding agent integration.
[!NOTE] Version:
v1.0.1
All 15 UML 2.x diagram types, digital hardware schematics, freehand recognition, and AI agent patch bridges are available. If you encounter bugs, rough edges, or have feature suggestions, please open an issue on the GitHub Issues page.
A high-performance, local-first visual modeling, UML, and hardware schematic canvas engine for Obsidian.
Build professional UML 2.x software engineering diagrams, Logisim-style digital hardware schematics with hierarchy, and hand-drawn whiteboard sketches on an infinite canvas—complete with an autonomous AI coding agent CLI bridge and RAG markdown export.
.canvuspp files (with backwards-compatible .umlcanvas support), compatible with Obsidian Canvas 1.0 viewers while storing rich semantic UML extensions..umlcanvas-patches/) allows external AI coding agents (such as Google Antigravity) to safely inspect and patch diagrams without race conditions.user, antigravity, both, none) with hash-checked conflict detection..umlcanvas-rag/<diagramId>.rag.md) optimized for vector embedding and LLM reasoning.| Category | Diagram Type | Key Shapes & Features |
|---|---|---|
| Structure | Class Diagram | Classes with attribute/method compartments, visibility indicators (+, -, #, ~), stereotypes, abstract/interface markers, associations, generalizations, aggregations, compositions, dependencies. |
| Object Diagram | Instance specifications, slotted values (slot: value), link edges. |
|
| Package Diagram | Packages with tabbed folders, nesting, «import» and «access» dependencies. |
|
| Component Diagram | Component boxes with UML component icons, required (socket) and provided (lollipop) interface ports, assembly connectors. |
|
| Composite Structure | Internal collaboration structure, encapsulated parts, ports, and internal wiring. | |
| Deployment Diagram | 3D deployment nodes, physical devices, execution environments, deployed artifacts, communication paths. | |
| Profile Diagram | Metaclasses, stereotypes, profile definitions, extension arrows with filled triangles. | |
| Behavior | Use Case Diagram | Actors, use case ellipses, system boundaries, associations, «include» and «extend» dependencies. |
| Activity Diagram | Initial nodes, activity actions, decisions/merges, forks/joins, activity finals, swimlanes/partitions. | |
| State Machine Diagram | Initial states, simple states, composite nested states, choice pseudostates, fork/join bars, transitions with events/guards/actions, final states. | |
| Sequence Diagram | Lifelines, activation boxes, synchronous/asynchronous calls, return messages, self-calls, alt/loop/opt interaction fragments. | |
| Communication Diagram | Collaborating lifelines with sequenced message numbers (1: msg(), 1.1: sub()). |
|
| Interaction Overview | High-level control flow linking nested interaction diagrams. | |
| Timing Diagram | Value-lifetime lanes, discrete state segments, timing rulers, duration/time constraints. | |
| Schematics | Schematic / Chip | Black-box IC chips, directional pins (in, out, inout), multi-bit buses (/N), clock signals, and hierarchical sub-circuit drilldown. |
Canvas++.Note: While in initial beta (
v0.1.0-beta), if Canvas++ is pending review on the official community registry, install via BRAT or manual download below.
VishalRashmika/canvas-plus-plus.main.js, manifest.json, styles.css) from the v0.1.0-beta Release page..obsidian/plugins/ (create the directory if it does not exist).canvas-plus-plus and place the three files inside.Ctrl+P (or Cmd+P), type Canvas++, and select Create Canvas++ (or Create diagram).| Action | Shortcut |
|---|---|
| Pan Canvas | Space + Left Click Drag or Middle Mouse Button Drag |
| Zoom In / Out | Mouse Wheel (focuses at cursor point) |
| Marquee Select | Click & Drag on empty canvas background |
| Additive Select | Shift + Click or Ctrl / Cmd + Click on nodes/edges |
| Move Selection | Click & Drag selected nodes (with alignment guides & snap) |
| Resize Node | Drag any of the 8 bounding resize handles |
| Connect Nodes | Click & Drag from any port handle on a node |
| Inline Text Edit | Double Click any node title or edge label (or press Enter / F2 when selected) |
| Undo / Redo | Ctrl+Z / Ctrl+Shift+Z (or Cmd+Z / Cmd+Shift+Z) |
| Delete Selected | Delete or Backspace |
| Copy / Cut / Paste | Ctrl+C / Ctrl+X / Ctrl+V |
| Group / Ungroup | Ctrl+G / Ctrl+Shift+G |
| Toggle Freehand | Click the Pen icon in the toolbar |
Go to Settings > Canvas++:
uml.class, uml.sequence, schematic).20px).500ms)..umlcanvas-patches/ for external automated diagram updates.The plugin includes a bidirectional file watcher bridge designed for external AI coding agents.
.umlcanvas-patches/ within your vault.<patchId>.patch.json) specifying operations (addNode, moveNode, addEdge, deleteNode, etc.).user: Agent edits are rejected; only the human user can modify.antigravity: Agent edits allowed.both: Either agent or user can modify (default).none: Locked to all edits.expectedFileHash before mutating state..umlcanvas-rag/<diagramId>.rag.md.For complete details on patch structures and error codes, refer to docs/cli/PATCH-FORMAT.md.
# Clone the repository
git clone https://github.com/VishalRashmika/canvas-plus-plus.git
cd canvas-plus-plus
# Install dependencies
npm install
# Run unit and integration tests (Jest)
npm test
# Run linter
npm run lint
# Compile production bundle (main.js)
npm run build
If you find Canvas++ helpful for your diagrams and workflows, consider supporting its maintenance and development:
This project is licensed under the GNU General Public License v3.0 (GPLv3).