Skip to main content

Physical and virtual pad control surfaces for AI agents.

Project description

Pad-Lattice logo

Physical and virtual control surfaces for AI agents

Pad-Lattice

Build Documentation Status Python License

🎛️ Try the virtual pad: https://mrueda.github.io/pad-lattice/play/

📘 Documentation: https://mrueda.github.io/pad-lattice/

🚀 Quick Start: https://mrueda.github.io/pad-lattice/docs/usage/quickstart

Pad-Lattice gives people a tactile, glanceable way to monitor and control AI agents. It repurposes MIDI pad controllers as that physical interface: their RGB grids can display agent state and accept deliberate actions. The same visual language also runs as a Virtual Pad in the browser, so anyone can use it from a phone, tablet, or computer, with or without MIDI hardware.

Pad-Lattice grew from mrueda's personal need to interact more directly with Codex CLI. As a musician and member of the duo The New Assembly, he had used a Launchpad Pro with Ableton Live and recognized that its mature grid interface could become a visual surface for agents. Read the origin story.

Codex asks for approval, physical and virtual pads light up, and one human press returns a targeted action

One local daemon maintains multi-agent state and routes currently available actions only to the selected agent. Visual Protocol 1 gives physical MIDI profiles and the Virtual Pad the same identity accents, state glyphs, selection, actions, and overflow behavior.

The first integration is Codex CLI. Pad-Lattice displays lifecycle state and can return targeted Approve, Reject, Retry, and Stop actions while prompts and terminal output remain in Codex.

Pad-Lattice is alpha software.

Choose a Surface

Surface Command Result
Public browser Open /play/ Demo, protocol sandbox, and audiovisual Show; no installation.
Local browser pad-lattice web Real Codex control on the same computer.
Phone or tablet pad-lattice web --lan Real Codex control after one-time pairing on a trusted local network.
Launchpad pad-lattice daemon Physical MIDI input and RGB state feedback.
Launchpad plus browsers pad-lattice daemon --web Synchronized physical and virtual surfaces on one control plane.

The public demo is intentionally simulated. Real control always requires the local Pad-Lattice process and Codex hooks.

Install and Start

Install the package in an isolated environment:

pipx install pad-lattice

This installs the release from PyPI without modifying the system Python.

Start the browser controller without MIDI hardware:

pad-lattice web

Then launch an integrated Codex session from another terminal:

pad-lattice codex --label implementation

To add a physical controller and optional synchronized browsers:

pad-lattice daemon --web --audio-feedback

The Quick Start covers hook review, MIDI setup, LAN pairing, and multiple sessions.

Supported Hardware

Device Profile ID Status
Novation Launchpad Pro Mk1 novation/launchpad/pro-mk1 Supported and physically tested
Novation Launchpad Mini Mk3 novation/launchpad/mini-mk3 Experimental; testers wanted
Novation Launchpad Pro Mk3 novation/launchpad/pro-mk3 Experimental; testers wanted

Declarative JSON profiles map Visual Protocol 1 to MIDI ports, programmer mode, note layouts, palettes, actions, selectors, and status indicators. New controllers do not require changes to Codex integrations.

Documentation

Topic Guide
Install and connect Codex Quick Start
Learn the colors, glyphs, actions, and 8x8 layout Visual Protocol
Connect phones, tablets, and laptops Browser Setup
Run the guided Demo or audiovisual Show Visual Show
Add or test a MIDI controller Device Profiles
Understand or extend the implementation Technical Guide
Review the trust boundary Security Model

Release history is recorded in CHANGELOG.md.

Development Approach

Pad-Lattice is an independent hobby project developed by mrueda in his free time. It is developed through an architecture-led, human-in-the-loop collaboration with Codex CLI (OpenAI, GPT-5.6), automated testing, and evaluation on physical and virtual surfaces. The origin and development page documents the process.

Citation

Machine-readable citation metadata is available in CITATION.cff. No formal publication is available yet. For now, cite:

Pad-Lattice: A Visual Protocol for AI Agent Control on MIDI and Virtual Pad Surfaces. https://github.com/mrueda/pad-lattice

Author

Created and maintained by mrueda.

Copyright and License

Copyright (C) 2026 Manuel Rueda.

Distributed under the Apache License 2.0. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pad_lattice-0.1.0.tar.gz (5.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pad_lattice-0.1.0-py3-none-any.whl (5.3 MB view details)

Uploaded Python 3

File details

Details for the file pad_lattice-0.1.0.tar.gz.

File metadata

  • Download URL: pad_lattice-0.1.0.tar.gz
  • Upload date:
  • Size: 5.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for pad_lattice-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ece5a917a4af57f6cfaaada2b789b5fbc26d74c0517a85ec64bf692f487a4cfb
MD5 5e421056d2fbb9f5dc62c98599bb1076
BLAKE2b-256 0c0506e6611ffcb71dca5c3ffb674eaa68cb801bf962db7a53519b3f8e18c63b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pad_lattice-0.1.0.tar.gz:

Publisher: publish-pypi.yml on mrueda/pad-lattice

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pad_lattice-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pad_lattice-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for pad_lattice-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f6a49b4f55b10b67e0174d7557a46d0d64368f678cb0f354655fd0ffd47310e0
MD5 a433445220058315df0a98f03b63e822
BLAKE2b-256 b05b36597fc9947016fccdb163c5e8cadb04ab98991d6b0f961842c881041c71

See more details on using hashes here.

Provenance

The following attestation bundles were made for pad_lattice-0.1.0-py3-none-any.whl:

Publisher: publish-pypi.yml on mrueda/pad-lattice

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page