Skip to content

profmitchell/Node2Joy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎛️ Node2Joy

The Ultimate Modular Mapping System for macOS

Swift macOS License

Node2Joy is a powerful, node-based automation and mapping engine built from the ground up for macOS. It allows you to transform any input—whether it's a MIDI controller, a Magic Mouse gesture, or a simple keyboard shortcut—into complex chains of actions.


🚀 Key Features

💎 Modular Node Graph

  • Trigger Nodes: The "Entry Points". Start your logic from any event.
  • Action Nodes: The "Engines". Execute keystrokes, mouse moves, or MIDI signals.
  • Logic Nodes:
    • Delay: Add precision timing between steps.
    • Cycle: One trigger, different outputs every time.
    • Sequence: Automate multiple repeats with looping logic.
  • Labels: Keep your canvas clean and documented.

🎮 Universal Triggers

  • Keyboard: Custom key combinations with all modifiers.
  • MIDI: Respond to MIDI Note On/Off from any source.
  • Mouse: Multi-button support with modifier guards.
  • Gestures: Magic Mouse & Trackpad swipes, pinches, and rotations.

🛠️ Versatile Outputs

  • Virtual Keys: Send key combos to any active application.
  • Mouse Control: Precise clicks and smooth movement relative to any window.
  • MIDI Feedback: Trigger external gear or software with MIDI messages.

🎨 Premium UI/UX

  • Silky Smooth Canvas: Infinite panning and zooming with CMD+Scroll or Spacebar-drag.
  • Rich Theming: 12+ handcrafted themes including Cyberpunk, Ocean Blue, and Apple Dark.
  • Power Features:
    • Selection: Shift-click or Box-selection for mass movement.
    • Grid System: Toggleable snap-to-grid for pixel-perfect layouts (Option+G).
    • Quick Shortcuts: Tap T, A, or D to drop nodes instantly at your cursor.
    • Auto-Fit: Double-tap the canvas to instantly center your entire graph.

📁 Repository Structure

  • /Node2Joy: The core Swift Package. Standard SPM structure (Sources/, Tests/). Clean, modular, and Swift 6 Concurrency safe.
  • /Node2JoyDemo: A sample macOS app demonstrating the CanvasScene and real-time node manipulation.

🏁 Getting Started

1. Requirements

  • macOS 12.0 or later
  • Xcode 15.0 or later (Swift 6.0 compatible)

2. Installation

To use Node2Joy in your own project:

  1. Drag the Node2Joy folder into your Xcode project.
  2. In your target's General tab, add Node2Joy to Frameworks, Libraries, and Embedded Content.
  3. import Node2Joy and you're ready to go!

3. Running the Demo

  1. Open Node2JoyDemo/Node2JoyDemo.xcodeproj.
  2. Build and Run (Cmd+R).
  3. Right-click anywhere on the canvas to start adding your first nodes.

⌨️ Pro Shortcuts

Key Action
Space + Drag Pan the canvas
Cmd + Scroll Zoom in/out
Double Tap Fit all nodes to screen
Cmd + A Select all nodes
T / A / D Quick Add: Trigger / Action / Delay
Option + G Toggle Grid
Delete Remove selected node/connection
0 Toggle enabled/disabled state

📄 License

Distributed under the MIT License. See LICENSE for more information.


Built with ❤️ for the macOS automation community.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages