<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Zane</title>
    <description>The latest articles on DEV Community by Zane (@zane_bb379d5c3aa0d830cc84).</description>
    <link>https://dev.to/zane_bb379d5c3aa0d830cc84</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3524044%2F407f726b-4a05-4d8d-bdff-0490f2954f9c.png</url>
      <title>DEV Community: Zane</title>
      <link>https://dev.to/zane_bb379d5c3aa0d830cc84</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zane_bb379d5c3aa0d830cc84"/>
    <language>en</language>
    <item>
      <title>Knovum v0.1.0: Canvas Auto-Layout, In-Canvas Video Scrubbing &amp; Local-First AI Architecture</title>
      <dc:creator>Zane</dc:creator>
      <pubDate>Wed, 28 Oct 2026 16:53:27 +0000</pubDate>
      <link>https://dev.to/zane_bb379d5c3aa0d830cc84/knovum-v010-canvas-auto-layout-in-canvas-video-scrubbing-local-first-ai-architecture-4ahn</link>
      <guid>https://dev.to/zane_bb379d5c3aa0d830cc84/knovum-v010-canvas-auto-layout-in-canvas-video-scrubbing-local-first-ai-architecture-4ahn</guid>
      <description>&lt;p&gt;Over the past few weeks, we've been building &lt;strong&gt;&lt;a href="https://github.com/madebyzan/knovum" rel="noopener noreferrer"&gt;Knovum&lt;/a&gt;&lt;/strong&gt; — a local-first, privacy-respecting desktop AI knowledge workspace built with &lt;strong&gt;Tauri 2, Vue 3, and Rust&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Unlike standard chat wrappers or cloud dashboards, Knovum provides an infinite 2D canvas where human notes, PDF excerpts, audio transcriptions, and local LLMs (via Ollama/LanceDB) live together spatially without vendor lock-in.&lt;/p&gt;

&lt;p&gt;Today we're preparing our major milestone: &lt;strong&gt;v0.1.0&lt;/strong&gt;. Here is an engineering breakdown of the three biggest technical challenges we solved in this release.&lt;/p&gt;




&lt;h3&gt;
  
  
  1. Figma-Style Auto-Layout &amp;amp; Tidy-Up on an Open Canvas (&lt;code&gt;.canvas&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Spatial canvases are wonderful for brainstorming, but messy card sprawl is a known pain point. When you have dozens of AI generation cards and research notes scattered around, manual alignment becomes tedious.&lt;/p&gt;

&lt;p&gt;In v0.1.0, we introduced native &lt;strong&gt;Auto-layout Sections and Tidy-Up&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Native Rust Packing (&lt;code&gt;planner::packing&lt;/code&gt;)&lt;/strong&gt;: Instead of running heavy geometric calculations in JavaScript, spatial flow (row, column, and balanced grid packing) is calculated by compiled Rust code via Tauri IPC.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Squarest Table Packing&lt;/strong&gt;: When organizing an arbitrary collection of cards into a Section, the planner computes the optimal aspect ratio to keep the bounding section as close to golden/square proportions as possible without overlapping.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Direct JSON Canvas Compatibility&lt;/strong&gt;: All positioned cards, section groups, and flow relations are saved directly into the open standard &lt;code&gt;*.canvas&lt;/code&gt; format (compatible with Obsidian Canvas), maintaining complete portability.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. In-Canvas Video Scrubbing &amp;amp; Audio Waveform Streaming
&lt;/h3&gt;

&lt;p&gt;Research often involves multimedia — recorded lectures, technical podcasts, and screen captures. In existing tools, clicking a video either opens a heavy external player or throws you into an isolated modal window.&lt;/p&gt;

&lt;p&gt;In v0.1.0, we brought full &lt;strong&gt;Video &amp;amp; Audio Workbenches directly onto 2D canvas cards&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Streaming Audio Waveforms&lt;/strong&gt;: We built a high-performance audio waveform visualizer that decodes and renders audio tracks in real-time without buffering whole gigabyte files into RAM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Filmstrip &amp;amp; Frame-Accurate Scrubbing&lt;/strong&gt;: Hovering over the timeline scrubs through visual filmstrip keyframes rendered directly within the Konva-based canvas node.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Whisper Integration with Diagnostics&lt;/strong&gt;: Paired with our embedded &lt;code&gt;whisper.cpp&lt;/code&gt; sidecar, audio from video cards can be transcribed locally into time-stamped note cards with zero audio bytes leaving your computer.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. Preflight Diagnostics: Eliminating the "Silent AI Failure" Problem
&lt;/h3&gt;

&lt;p&gt;One of the most frustrating aspects of local AI desktop apps is silent runtime failure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is Ollama running in the background?&lt;/li&gt;
&lt;li&gt;Did the user pull the requested model (e.g. &lt;code&gt;qwen2.5&lt;/code&gt; or &lt;code&gt;llama3.2&lt;/code&gt;)?&lt;/li&gt;
&lt;li&gt;Does the system have sufficient VRAM available?&lt;/li&gt;
&lt;li&gt;Are the speech sidecar binaries executable?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In v0.1.0, we implemented an &lt;strong&gt;AI Readiness Preflight Engine (&lt;code&gt;features/ai-preflight&lt;/code&gt;)&lt;/strong&gt;:&lt;br&gt;
Before firing off any generation or vector embedding pipeline, Knovum conducts non-blocking health checks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pings the local Ollama daemon and inspects installed model tags.&lt;/li&gt;
&lt;li&gt;Verifies local Whisper sidecar binary permissions and model weights (&lt;code&gt;ggml-base.bin&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Validates LanceDB vector index integrity and SQLite schema version.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If any check fails, the UI surfaces actionable, inline recovery prompts (e.g., "Ollama is reachable, but &lt;code&gt;qwen2.5:7b&lt;/code&gt; is missing — run &lt;code&gt;ollama pull qwen2.5:7b&lt;/code&gt;") instead of freezing or failing silently.&lt;/p&gt;




&lt;h3&gt;
  
  
  Performance Snapshot
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Idle RAM&lt;/strong&gt;: ~45MB (thanks to Tauri 2 native OS WebViews vs 800MB+ for Electron).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage&lt;/strong&gt;: 100% local SQLite for notes + LanceDB for embeddings. No cloud subscription, no SaaS telemetry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License&lt;/strong&gt;: Source-available and free for personal &amp;amp; research use.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’d love to hear your thoughts, feedback, and architecture critiques!&lt;/p&gt;

&lt;p&gt;🔗 GitHub Repository: &lt;a href="https://github.com/madebyzan/knovum" rel="noopener noreferrer"&gt;https://github.com/madebyzan/knovum&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>rust</category>
      <category>tauri</category>
      <category>vue</category>
    </item>
    <item>
      <title>Knovum v0.0.3: Building a Local-First Desktop AI Canvas with Tauri 2, Vue 3, and Rust</title>
      <dc:creator>Zane</dc:creator>
      <pubDate>Mon, 26 Oct 2026 16:20:07 +0000</pubDate>
      <link>https://dev.to/zane_bb379d5c3aa0d830cc84/knovum-v003-building-a-local-first-desktop-ai-canvas-with-tauri-2-vue-3-and-rust-3hfj</link>
      <guid>https://dev.to/zane_bb379d5c3aa0d830cc84/knovum-v003-building-a-local-first-desktop-ai-canvas-with-tauri-2-vue-3-and-rust-3hfj</guid>
      <description>&lt;p&gt;Like many developers and researchers, I've spent the past two years experimenting with local LLMs (via Ollama) and local RAG. But existing desktop frontends repeatedly hit two frustrating walls:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The 1D Chat Trap&lt;/strong&gt;: Linear chat streams work well for simple Q&amp;amp;A, but break down during deep research synthesis. Earlier reasoning turns scroll off the top, and you cannot visually compare multiple document excerpts side-by-side.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Electron Memory Tax&lt;/strong&gt;: Most desktop AI wrappers idle at 700MB–1GB RAM before you even load model weights into VRAM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modal Dialog Friction&lt;/strong&gt;: Whenever an AI tool opens a floating modal popup to generate text or images, it hides your active research notes and breaks your creative flow.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To solve this, we built &lt;strong&gt;&lt;a href="https://github.com/madebyzan/knovum" rel="noopener noreferrer"&gt;Knovum&lt;/a&gt;&lt;/strong&gt; — a source-available, local-first desktop AI knowledge workspace built on an infinite 2D canvas with Tauri 2, Rust, and Vue 3.&lt;/p&gt;

&lt;p&gt;We are preparing our &lt;strong&gt;v0.0.3 release&lt;/strong&gt;, so I wanted to share the engineering decisions behind the architecture, what we learned building it, and what's new.&lt;/p&gt;




&lt;h3&gt;
  
  
  Core Architecture: 45MB Idle RAM &amp;amp; Local-First Storage
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌────────────────────────────────────────────────────────┐
│             Vue 3 Spatial Frontend                     │
│  (Konva Infinite 2D Canvas + JSON Canvas Specification) │
└───────────────────────────┬────────────────────────────┘
                            │ Tauri 2 IPC (Channels)
┌───────────────────────────▼────────────────────────────┐
│                    Rust Backend Core                   │
│   ┌────────────────────┐      ┌────────────────────┐   │
│   │   SQLite Storage   │      │ Embedded LanceDB   │   │
│   │  (Notes, Boards,   │      │ (In-Process Vector │   │
│   │   Numbered Migr.)  │      │   Search Engine)   │   │
│   └────────────────────┘      └────────────────────┘   │
│   ┌────────────────────┐      ┌────────────────────┐   │
│   │    Ollama API      │      │ Embedded Whisper   │   │
│   │ (Local LLM Router) │      │ (Speech-to-Text)   │   │
│   └────────────────────┘      └────────────────────┘   │
└────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  1. Why Tauri 2 + Vue 3?
&lt;/h4&gt;

&lt;p&gt;By leveraging native OS WebViews (WKWebView on macOS, WebView2 on Windows) orchestrated by a compiled Rust backend, Knovum cold-boots in sub-second time and idles around &lt;strong&gt;45MB of RAM&lt;/strong&gt;. This leaves virtually all of your machine's physical memory dedicated to loading model weights.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Dual-Engine Embedded Storage
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SQLite&lt;/strong&gt;: The canonical single source of truth for notes, cards, and relations, guarded by strict numbered migrations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embedded LanceDB&lt;/strong&gt;: Runs in-process on disk for fast vector similarity search without requiring Docker, external daemons, or Python runtimes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3. Zero Lock-In with JSON Canvas
&lt;/h4&gt;

&lt;p&gt;Every visual workspace is stored directly on your local filesystem using the open &lt;a href="https://jsoncanvas.org/" rel="noopener noreferrer"&gt;JSON Canvas&lt;/a&gt; (&lt;code&gt;.canvas&lt;/code&gt;) specification. You can open, edit, and inspect any Knovum board directly in Obsidian Canvas or parse it with custom scripts.&lt;/p&gt;




&lt;h3&gt;
  
  
  What's New in Knovum v0.0.3
&lt;/h3&gt;

&lt;p&gt;Here are the key improvements shipped in our &lt;strong&gt;v0.0.3 release&lt;/strong&gt;:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. In-Canvas Framed Generators (Goodbye Modal Popups!)
&lt;/h4&gt;

&lt;p&gt;We completely removed floating creation dialogs in favor of &lt;strong&gt;in-canvas framed generators&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generative actions (image, video prompt, and document drafting) occur directly inside framed canvas nodes sized to the desired output.&lt;/li&gt;
&lt;li&gt;The generator frame features an integrated composer beneath it (references, prompt, aspect ratio, duration, executor).&lt;/li&gt;
&lt;li&gt;When generation finishes, the drafted artifact stands directly on the board in its designated frame.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. Canvas Reference Pinning
&lt;/h4&gt;

&lt;p&gt;You can now pin existing canvas nodes as multimodal prompt references with a single click (&lt;code&gt;Pick from canvas&lt;/code&gt;). The canvas selection gesture attaches reference notes or images directly to the generator, ensuring the AI model has precise spatial context.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Side-by-Side Visual Comparison
&lt;/h4&gt;

&lt;p&gt;Derived images and generated documents can be inspected and compared directly alongside their source inputs on an infinite visual board, making multi-iteration refinements effortless.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Differential AST Indexing in Rust
&lt;/h4&gt;

&lt;p&gt;In traditional vector RAG setups, updating a document collection often triggers expensive full re-indexes. In Knovum:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We track leaf-node &lt;code&gt;blake3&lt;/code&gt; content hashes in Rust AST parsers.&lt;/li&gt;
&lt;li&gt;Edits update only the specific changed leaf node (~92% single-leaf writes), keeping background LanceDB and SQLite indexing imperceptible.&lt;/li&gt;
&lt;li&gt;The live index stays &lt;strong&gt;fully readable and searchable&lt;/strong&gt; during async background indexing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  5. Throttled IPC Decoupling (~10Hz)
&lt;/h4&gt;

&lt;p&gt;High-frequency background events (Whisper transcription progress, vector index progress) are emitted through dedicated Tauri Channels to a lightweight shared Task Center throttled to ~10Hz. The 2D Konva canvas layer never subscribes to raw token events, keeping zoom, pan, and drag gestures buttery-smooth at 60 FPS.&lt;/p&gt;




&lt;h3&gt;
  
  
  Download &amp;amp; Source Code
&lt;/h3&gt;

&lt;p&gt;Knovum is source-available and free for personal/research use under the &lt;strong&gt;Knovum Personal Noncommercial License&lt;/strong&gt;, with transparent open data formats (JSON Canvas, SQLite, Markdown).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/madebyzan/knovum" rel="noopener noreferrer"&gt;https://github.com/madebyzan/knovum&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Releases &amp;amp; Prebuilt Binaries&lt;/strong&gt;: &lt;a href="https://github.com/madebyzan/knovum/releases" rel="noopener noreferrer"&gt;https://github.com/madebyzan/knovum/releases&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;macOS (Apple Silicon &lt;code&gt;.dmg&lt;/code&gt; &amp;amp; Intel &lt;code&gt;.dmg&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Windows (&lt;code&gt;x64-setup.exe&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are interested in local-first software, spatial computing, or running LLMs on your own desktop hardware, check out the repository on GitHub, leave a ⭐ if you like the concept, and share your feedback!&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
  </channel>
</rss>
