Skip to main content

MultiState

Advanced Multi-State Management Framework

Multi-State Activation

Unlike traditional state machines, MultiState allows multiple states to be active simultaneously. Transitions can activate multiple states atomically, perfect for complex GUI applications.

# Traditional FSM: one state at a time
fsm.transition_to('panel_open')

# MultiState: multiple states together!
manager.add_transition(
'open_workspace',
activate=['toolbar', 'sidebar', 'content']
)

Multi-Target Pathfinding

Find optimal paths that reach ALL specified targets, not just one. The algorithm guarantees globally optimal solutions for complex navigation scenarios.

# Find path to reach ALL targets
targets = ['search', 'properties', 'debug']
path = manager.find_path_to(targets)

# Returns optimal sequence:
# 1. Open Workspace
# 2. Show All Panels
# Result: ALL three panels active

Why MultiState?

Multi-Target Navigation

Multi-Target Navigation

Find optimal paths to reach multiple states simultaneously. Perfect for complex UI workflows.

Occlusion & Reveal

Occlusion & Reveal

Automatically handle modal dialogs and overlays. Generate reveal transitions when occluding states close.

Safe Execution

Safe Execution

Phased execution model with automatic rollback ensures your system never loses state on failure.

Built on Rigorous Mathematical Foundations

Ω = (S, T, G, ω, Td)

  • S - Set of states with multi-activation
  • T - Transitions with (from, activate, exit) semantics
  • G - State groups for atomic operations
  • ω - Occlusion function for state visibility
  • Td - Dynamic transition generator

Production-Ready Framework

Proven in Production

Proven in Production

Born from Brobot's real-world GUI automation needs. Powers Qontinui's state management. Battle-tested with millions of transitions.

Formally Verified

Formally Verified

Mathematical proofs for all core properties. 100% theorem coverage with property-based testing. Guaranteed correctness and optimality.

Easy Integration

Easy Integration

Clean API with adapters for existing systems. Works with any Python 3.8+ application. Minimal dependencies, maximum compatibility.