Skip to main content

mopad

An anywidget that allows gamepad input in Marimo notebooks. Perfect for interactive data exploration, games, or any application that needs real-time gamepad input.

Features

  • 🎮 Automatic gamepad detection - No need to press buttons before starting
  • 📊 Real-time visual feedback - Connection status and button press information
  • ⏱️ Precise timestamp tracking - Millisecond-accurate timing for button presses
  • 🔗 Any button support - Capture input from any bluetooth gamepad

Installation

pip install mopad

Usage

Basic Example

import marimo as mo
from mopad import MopadWidget

# Create and display the widget
gamepad = mo.ui.anywidget(MopadWidget())
gamepad

For a full demo you can check Github pages.

Widget Properties

Property Type Description
last_button_pressed int Index of the last pressed button (-1 if none)
current_timestamp float Timestamp of the most recent button press (ms)
previous_timestamp float Timestamp of the previous button press (ms)
axes list[float] Analog stick values: [left_x, left_y, right_x, right_y]
dpad_up bool True when D-pad up is pressed
dpad_down bool True when D-pad down is pressed
dpad_left bool True when D-pad left is pressed
dpad_right bool True when D-pad right is pressed
button_id int Legacy property for backward compatibility
k

Gamepad Setup

  1. Connect your gamepad to your computer (USB or Bluetooth)
  2. Press any button on the gamepad to activate it in the browser
  3. Start the widget - it will automatically detect the connected gamepad

Note: Due to browser security policies, gamepads need user interaction to be detected. The widget will guide you through the connection process with clear visual indicators.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Metadata

Release files for mopad 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mopad 0.4.0
File Size Uploaded
mopad-0.4.0.tar.gz 7.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mopad 0.4.0
File Interpreter ABI Platform
mopad-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 15.0 kB

Release files / mopad-0.4.0.tar.gz

Download URL mopad-0.4.0.tar.gz
Size 7.7 kB
Tags Source
SHA-256 checksum
How to use checksums
971382faccdb3e316135117a88ba5d81764e95413caa163972c96d5092dc5e3a
BLAKE2b-256 checksum
How to use checksums
7dae7ee0f1f44b81032918d882fcf05218d7560c5ee02110f231b6c106ed393b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.7

Release files / mopad-0.4.0-py3-none-any.whl

Download URL mopad-0.4.0-py3-none-any.whl
Size 7.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6ed0e4227606dd022180cb587104ff7289dea253fde0dd4c6037916ae4a3ffc1
BLAKE2b-256 checksum
How to use checksums
61a4eace80759a8888dff0a49843060d053cc3508e89d3278cef759515ccc761
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.7

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page