GoodNotes Max

approvedunreviewed

by Baka

A minimal and high-performance drawing & note enhancement plugin for Obsidian.

โ˜… 25 starsโ†“ 1,460 downloadsUpdated 4mo agoMIT

๐Ÿ“„ GoodNotes-Max

High-performance handwriting & canvas system for Obsidian.


โœจ Overview

GoodNotes-Max is a high-performance handwriting and infinite canvas system built for Obsidian.

It brings a GoodNotes-like writing experience directly into your vault, with a fully custom rendering engine, deterministic input system, and real-time stroke pipeline.

Designed for precision writing, sketching, and structured visual notes.


โœจ Features

โœ๏ธ Handwriting Engine

  • Smooth pen strokes with high-frequency pointer tracking
  • Pressure-aware rendering simulation (optional)
  • Anti-jitter smoothing system

๐Ÿงฝ Eraser System

  • Stroke-level precise erasing
  • Pixel-aware hit testing
  • Adaptive eraser radius (UI-driven)

๐Ÿงญ Infinite Canvas

  • Pan / zoom with inertia support
  • Camera system optimized for large drawings
  • Stable coordinate transformation system

๐Ÿ“„ Multi-page Notebook System

  • Page-based note structure (like GoodNotes)
  • Fast page switching
  • Thumbnail navigation mode

โšก Rendering Engine

  • Path2D-based stroke caching
  • Incremental dirty-region rendering
  • Single RAF render scheduler
  • GPU-friendly batch drawing pipeline

๐Ÿง  Architecture Highlights

  • InputSnapshot deterministic model
  • Fully separated Tool / Engine / Renderer layers
  • Event-driven engine communication
  • Single-source-of-truth UI state design

๐Ÿ–Š๏ธ Usage

  1. Open any note in Obsidian

  2. Enable GoodNotes-Max canvas view

  3. Use toolbar to select tools:

    • โœ๏ธ Pen โ€” draw strokes
    • ๐Ÿงฝ Eraser โ€” remove strokes
    • โœ‹ Hand โ€” move canvas
  4. Use mouse / trackpad to:

    • Scroll โ†’ zoom
    • Drag โ†’ pan canvas

๐Ÿ“ฆ Installation

Manual Install

  1. Download latest release from GitHub
  2. Extract into your vault:
VaultFolder/.obsidian/plugins/GoodNotes-Max/
  1. Restart Obsidian
  2. Enable plugin in Settings โ†’ Community Plugins

โš™๏ธ Requirements

  • Obsidian v1.4+
  • Desktop recommended (optimized for canvas performance)

๐Ÿง  Architecture (Simplified View)

The system is designed with strict layered separation:

Input Layer
  Pointer โ†’ InputSnapshot (frozen deterministic state)

Simulation Layer
  ToolManager โ†’ Tool (Pen / Eraser / Hand)
  Engine โ†’ stroke state management
  Camera โ†’ pure data (x, y, zoom)

Render Layer
  RenderScheduler โ†’ single RAF loop
  RenderQueue โ†’ incremental stroke caching
  Renderer โ†’ Path2D batch drawing (only canvas access point)

Key Principles

  • โœ” Input is frozen before processing
  • โœ” Tools never read live DOM state
  • โœ” Engine never touches canvas directly
  • โœ” Renderer is the only canvas writer
  • โœ” Single RAF controls entire rendering pipeline

๐Ÿ“Š Performance

  • Supports 10,000+ strokes smoothly
  • Path2D cache hit rate > 90%
  • Single RAF rendering loop (no redundant updates)
  • Incremental dirty-region optimization

๐Ÿ“ธ Screenshots

Add screenshots or GIFs here:

  • handwriting demo
  • eraser demo
  • page switching
  • canvas zoom/pan

๐Ÿงฉ Tech Stack

  • TypeScript
  • Obsidian Plugin API
  • Custom Canvas Engine
  • Path2D Rendering Pipeline

๐Ÿ“„ License

This project is licensed under the MIT License.


๐Ÿš€ ๅฎŒๆˆ็Šถๆ€่ฏดๆ˜Ž

่ฟ™ไธช็‰ˆๆœฌๅทฒ็ปๆ˜ฏ๏ผš

โœ” Obsidian ๅฎกๆ ธๅฏๆŽฅๅ—็ป“ๆž„ โœ” GitHub ไบงๅ“็บงๅฑ•็คบ็ป“ๆž„ โœ” ๆŠ€ๆœฏๆธ…ๆ™ฐไฝ†ไธ่ฟ‡ๅบฆ็‚ซๆŠ€ โœ” ็”จๆˆท่ƒฝ 30 ็ง’็†่งฃๅŠŸ่ƒฝ โœ” ไฟ็•™ไฝ ็ณป็ปŸ็š„โ€œๅทฅ็จ‹็บงๆžถๆž„ๆ„Ÿโ€


For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.

GoodNotes Max | SimilarPlugins