This CYOA Story Maker & Visualizer is a dual-application toolkit designed to create and map interactive branching narratives. It integrates a CustomTkinter desktop editor for deep content creation with a Streamlit web interface for real-time, graphical story mapping.
Follow these steps in order to get the environment ready.
The visualizer requires the Graphviz engine to be installed on your operating system and added to your system's PATH.
- Windows:
- Download the installer from the Graphviz Download Page.
- Run the
.exeinstaller. - Important: During installation, select "Add Graphviz to the system PATH for all users" or "Add Graphviz to the system PATH for current user".
- macOS:
brew install graphviz
- Linux (Ubuntu/Debian):
sudo apt-get install graphviz
git clone git@github.com:gsdev215/Cyoa_Editor.git
cd Cyoa_Editor
Ensure you have Python 3.9+ installed, then run:
pip install -r requirements.txt
The application is designed to be launched via the Streamlit web interface, which then manages the desktop editor process.
Run the following command in your terminal:
streamlit run cytor.py
- Once the Streamlit page opens in your browser, click the "🚀 Start Editor" button in the control panel.
- The CustomTkinter editor will open in a new window.
- Sync: As you save or update nodes in the Desktop Editor, the Web Visualizer will automatically refresh the graph.
- Remote Edit: You can select a Node ID from the dropdown in the Web Interface and click "✏️ Edit Selected". This sends a command to the Desktop Editor to automatically open that specific node for editing.
- Dynamic Graphing: Automatically color-codes nodes (Endings: Coral, Linear: Yellow, Branching: Blue).
- Bi-Directional Communication: Uses
.pklfiles as a messaging bridge between the two processes. - Emoji Schema: Integrated support for custom emoji-based choices.
- Background Tasks: Uses
asyncioin the desktop app to poll for web commands without freezing the UI.
This project is licensed under the MIT License. See the LICENSE file for details.