Skip to main content

A Bokeh on screen gesture/mouse drag based joystick widget for use in a dashboard with controls

Project description

Bokeh Joystick Widget

This is a custom widget for the Python Bokeh library that allows you to control a joystick via mouse drags or touch gestures.

The widget has x and y properties that are updated as the joystick is moved. The x and y properties are in the range -100 to 100.

The widget makes use of https://github.com/bobboteck/JoyStick/.

Setup

Install with pip:

pip install bokeh-joystick-widget

Or poetry:

poetry add bokeh-joystick-widget

Usage

In your bokeh app, you can use the joystick widget like this:

from bokeh_joystick_widget import JoystickWidget
:
# some plot
:
joystick = JoystickWidget()
joystick.on_change("position", lambda attr, old, new: print(f'x: {new["x"]}, y: {new["y"]}'))
:
:
show(column(joystick, plot))

Examples

There are two examples:

  • examples/static_joystick_example.py - show a column with a plot and the joystick, then exit.
  • examples/console_joystick_example.py - show a plot and the joystick in a bokeh server app. Callbacks from the front end drive console logs of the joystick position.

Roadmap

  • Get the example JS demo widget/bokeh model to work - whatever that widget is. - done
  • Figure out how to get values back to the python end with it. - done
  • Figure out how to swap their control for the joystick (however hacky) - done
    • Note - this is a TS file from the original, adapted here. The DOM element change is important.
  • Figure out how to make that tidier. - done
  • Figure out how to publish to PyPi (alpha) and test in a pip installed test.

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

bokeh_joystick_widget-0.2.0.tar.gz (8.0 kB view hashes)

Uploaded Source

Built Distribution

bokeh_joystick_widget-0.2.0-py3-none-any.whl (8.9 kB view hashes)

Uploaded Python 3

Supported by

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