Skip to main content

Display battle maps for TTRPGs on a secondary tv

Project description

PyPI - Version Tests Mypy Ruff

Battle Map TV

Display battle maps for TTRPGs on a tv or monitor that lies flat horizontally on your table.

No more features than needed: just show an image the way you want. Optionally add a grid, initiative order and area of effect shapes.

For GM's with little time or who improvise their sessions: much easier to use in-session than a full blown VTT.

IMG_4856

My GM laptop that also runs controls and a TV showing the map. Add minis, tokens or gummibears yourself.

Features

  • Works on Linux, macOS and Windows by using Python.
  • Doesn't use a browser.
  • Free and open source
  • Works offline
  • Simple UI
  • Two windows:
    • one on the TV with your map and grid on it
    • one on your GM laptop with controls
  • Import local image files to display on the tv.
  • Scale, pan, center and rotate the image.
  • Overlay a grid that you can scale to 1 inch.
  • Automatically detect the lines in an image and scale it to the grid overlay.
  • Save settings so images load like you had them last time.
  • Simple initiative tracker
  • Overlay area of effects
    • snap to grid
    • rasterize to grid

Installation

There are two options: use a fully ready executable or use Python.

Windows executable

If you are on Windows, you can get an executable from the latest release. Look for 'battle-map-tv.exe' under 'Assets' on https://github.com/Conengmo/battle-map-tv/releases.

Using Python

  • Open terminal or cmd.
  • Check that you have Python installed by running the python --version command.
  • Optionally, use a virtual environment
  • Install Battle Map TV with this command: python -m pip install battle-map-tv
  • Then run it with: python -m battle_map_tv

User guide

  • Drag the TV window to your TV and make it fullscreen with the 'fullscreen' button.
  • Use the 'add' button to load an image.
  • You can drag the image to pan. Zoom with your mouse scroll wheel or use the slider in the controls window.
  • Close the application with the 'exit' button.

Initiative tracker

In the controls window, you can add players and their initiative. The list will be sorted automatically. Just put a number and a name on each line, for example "1 barbarians" and "20 heroes".

The '+' and '-' buttons increase and decrease the font size.

The 'move' button moves the lists to different positions and rotations on the screen.

Area of effect

Click on one of the buttons for a shape like 'circle' or 'square'. Then click and drag anywhere in the TV window to create the shape in the size you want.

The default color for shapes is white, but you can also toggle another color with the color buttons.

You can delete a shape by right-clicking on it, or by using the 'Clear' button.

If the grid is enabled, points will automatically snap to the grid.

If you click 'rasterize', the edges of the shapes you make will fit the grid.

When creating a shape, hold 'shift' to freeze the size of the shape, but keep rotating.

Technical

  • Uses PySide6 for the graphical user interface.
  • Uses OpenCV to detect the grid on battle maps.
  • Uses Hatch to build and release the package.
  • Uses Nuitka to create executables.

Nuitka guide

Make sure you have a clean virtualenv with only the packages from requirements.txt. First, install imageio to be able to convert the icon image. Then create a single executable. This will require additional components that Nuitka will guide you through.

python -m pip install imageio

python -m nuitka battle_map_tv/__main__.py --enable-plugin=pyside6 --onefile `
--windows-console-mode=attach --windows-icon-from-ico=battle_map_tv/icon.png `
--include-data-files="battle_map_tv/icon.png=battle_map_tv/icon.png" `
--output-filename="battle-map-tv.exe"

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

battle_map_tv-0.8.0.tar.gz (31.2 kB view details)

Uploaded Source

Built Distribution

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

battle_map_tv-0.8.0-py3-none-any.whl (35.5 kB view details)

Uploaded Python 3

File details

Details for the file battle_map_tv-0.8.0.tar.gz.

File metadata

  • Download URL: battle_map_tv-0.8.0.tar.gz
  • Upload date:
  • Size: 31.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for battle_map_tv-0.8.0.tar.gz
Algorithm Hash digest
SHA256 33d55e9d371084b678c01c839a52afd6966d40f919d0e620e7b702d975a31b91
MD5 5ca4a19467d3eb30e4b9fde247ee90d8
BLAKE2b-256 51097fa5f95ebe9fa77b5d7f8da12ac41fd54f2265fd26fdc2e9ad4e1773dde3

See more details on using hashes here.

Provenance

The following attestation bundles were made for battle_map_tv-0.8.0.tar.gz:

Publisher: publish_to_pypi.yml on Conengmo/battle-map-tv

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

File details

Details for the file battle_map_tv-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: battle_map_tv-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 35.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for battle_map_tv-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b7dd7e8f7cf8bfa11d724d19ef96a97a64fa9c1c0c7c9be8fdb70f4cd4c7a2ad
MD5 8efab289774f1a72a55ec5b12e4d890f
BLAKE2b-256 35d8eacdc19fe5dc9b1a076708800114b3e38f65792c4b5cf3a65e7cfc035f6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for battle_map_tv-0.8.0-py3-none-any.whl:

Publisher: publish_to_pypi.yml on Conengmo/battle-map-tv

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