Skip to main content

wzrdbrain

wzrdbrain is a physics-aware combo generator for wizard skating. It models moves as state transitions — each trick transforms the skater's physical state (direction, edge, stance, weight point) so generated combinations are actually executable, not just random names.

If you're a wizard skater, the best way to use this project is through the Rocker'd Magic Moves app!

The app is powered by this library and works on your phone, even offline.

Logic makes magic.

How it works

Every move in the library defines an entry state (what the skater needs to be doing) and an exit state (what the skater ends up doing). The combo generator chains moves by matching exit states to entry states across all four physical dimensions (direction, edge, stance, weight point), producing sequences that flow naturally.

Matching uses a three-tier cascade: it prefers a fully continuous link (direction + point + edge + stance), falls back to matching direction + point, then to direction alone — so it never dead-ends. Each trick reports how continuous its link is via a transition field (start, linked, edge_shift, or reset), so the output is honest about where the skater makes an implicit adjustment.

Move names follow the Front/Back [Open|Closed] Move convention (e.g. Front Open Gazelle), and the whole library is validated against the move schema at load time — a typo in the data fails at import instead of silently generating broken combos.

The move library (moves.json) contains 68 move variants across 7 categories:

Category Examples Count
Base Predator, Predator One 4
Turn Parallel, Tree (front and back entries) 8
Transition Gazelle, Lion, Lion S, Gazelle S, 180, 360, 540 22
Pivot Toe Pivot, Heel Pivot (all direction/stance combos) 8
Swivel Stunami, UFO Swivel 4
Manual Toe/Heel Press, Toe/Heel Roll 8
Slide Parallel, Soul, Acid, Mizu, Star, Fast, Back 14

Contributing

We welcome contributions! wzrdbrain is an open-source project, and we encourage the community to help in many ways.

Want to add a new trick?

This is the most common way for skaters to contribute! Add a new move entry to src/wzrdbrain/moves.json with its entry/exit states. Name it following the Front/Back [Open|Closed] Move convention — the library is validated at load time, so any invalid state value is caught the moment the tests run. See the research doc for the state model and edge conventions.

To get started, please read our contributing guide which will walk you through the process.

Other ways to contribute

  • Report bugs and suggest features
  • Improve documentation
  • Submit code improvements for the library

For developers

Python usage

Install the package from PyPI:

pip install wzrdbrain

Use generate_combo to get a list of trick dictionaries with full state information.

from wzrdbrain import generate_combo

combo = generate_combo(3)
for trick in combo:
    print(f"{trick['name']}: {trick['entry']['direction']}{trick['exit']['direction']}")
# Example output:
# Front Predator: front → front
# Front Open Gazelle: front → back
# Back Open Lion: back → front

Each trick dict contains id, name, category, stage, a transition annotation describing its link to the previous trick (start/linked/edge_shift/reset), and entry/exit state objects. The exit object includes direction, edge, stance, point, plus lead_foot and feet.

Skaters who prefer "fakie"/"forward" wording can switch the display style with terminology="fakie" — trick names render as Forward Open Gazelle / Fakie Open Lion while ids and state values stay unchanged:

combo = generate_combo(3, terminology="fakie")

To practice a specific move, pass trick= and the combo is guaranteed to include it — matching is case-insensitive, understands fakie wording, and forgives small typos:

combo = generate_combo(3, trick="Front Open Gazelle")

JavaScript

Earlier releases shipped an auto-generated JavaScript port. It was removed to cut maintenance; if you need it, pin the last release that included it via JSDelivr:

https://cdn.jsdelivr.net/gh/nazroll/wzrdbrain@v0.4.1/src/wzrdbrain/wzrdbrain.js

Credits

Many thanks to the wizard skating community for their valuable feedback and support. Special thanks to:

License

This project is licensed under the Apache-2.0 Open Source Software License. See the LICENSE file for details.

Download files

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

Source Distribution

wzrdbrain-0.6.0.tar.gz (24.3 kB view details)

Uploaded Source

Built Distribution

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

wzrdbrain-0.6.0-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file wzrdbrain-0.6.0.tar.gz.

File metadata

  • Download URL: wzrdbrain-0.6.0.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for wzrdbrain-0.6.0.tar.gz
Algorithm Hash digest
SHA256 bad124ba9b24093efbd1566e316052fe5eded7a572bdb5494e288713051c71ec
MD5 cd7d5f2cc0f79a120687bef3f33af40d
BLAKE2b-256 2e9e04a23a142836edcc727e731fa00877e9200e6379afb2363cbe04dee543be

See more details on using hashes here.

Provenance

The following attestation bundles were made for wzrdbrain-0.6.0.tar.gz:

Publisher: release.yml on nazroll/wzrdbrain

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

File details

Details for the file wzrdbrain-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: wzrdbrain-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 16.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for wzrdbrain-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 61bfd181e51a26a7a9a696a2b312dac18e17cfbc79c5b38de51a3dce5e186eee
MD5 9cdb83aa0305b96024004a884105f00f
BLAKE2b-256 19d15b5ea27319150a90d27e54ae80451a035245cabc270db14ac653c815210f

See more details on using hashes here.

Provenance

The following attestation bundles were made for wzrdbrain-0.6.0-py3-none-any.whl:

Publisher: release.yml on nazroll/wzrdbrain

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

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 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