Random Decision Maker

March 23, 2026 · View on GitHub

A Flipper Zero app that lets you type your own choices and let a roulette wheel decide — powered by the device's hardware true-random-number generator.

Flipper App Catalog License: MIT


Features

  • Add up to 20 custom decisions (up to 20 characters each)
  • Roulette-style animation with a fast phase that decelerates smoothly before landing
  • True randomness via furi_hal_random_get() (hardware RNG, not a software PRNG)
  • Scrollable decision list with context-sensitive on-screen hints
  • Spin again or return to the list from the result screen

Screenshots

ManageSpinningResult
Manage screenSpinning screenResult screen

Installation

Search for "Decision Maker" in the Flipper App Catalog and install it directly from the Flipper Mobile App or lab.flipper.net.

Manual install (.fap build)

  1. Set up the Flipper Zero firmware build environment.
  2. Clone this repo into your firmware's applications_user/ directory:
    git clone https://github.com/Gerijacki/random_decision_maker.git \
        applications_user/random_decision_maker
    
  3. Build and deploy the external app:
    ./fbt launch APPSRC=applications_user/random_decision_maker
    

Controls

Manage screen

ButtonAction
UP / DOWNNavigate the list (hold for fast scroll)
OK on "+ Add decision"Open the keyboard to add a new entry
OK on a decisionSpin immediately (shortcut)
LEFTDelete the highlighted decision
RIGHTSpin the roulette (requires ≥ 2 decisions)
BACKExit the app

Keyboard screen

ButtonAction
OKConfirm and save the decision
BACKCancel and return to the list

Result screen

ButtonAction
OKSpin again with the same list
BACKReturn to the manage screen

Architecture

The app follows the standard Flipper Zero ViewDispatcher pattern with four views:

ViewIdManage     ──[spin/add]──►  ViewIdSpinning ──[done]──► ViewIdResult
     ▲                                                              │
     └──────────────────────────[BACK]──────────────────────────────┘

ViewIdTextInput (keyboard)

A FuriTimer drives the spin animation by posting CustomEventSpinTick events to the ViewDispatcher, keeping all model mutations on the GUI thread.


Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.


License

MIT © 2026 Gerijacki