Educational Multi-Language Programming Environment with Integrated IDE, Debugger, and Turtle Graphics
Time Warp Studio is a unified desktop programming environment designed for educators and students. It brings together 24 programming languages spanning six decades of computing history into a single, modern IDE. Built with Python and PySide6 (Qt6), it provides an integrated platform for learning programming concepts, exploring turtle graphics, and working through structured lessons.
- Core Features
- Requirements
- Quick Start
- Installation
- Your First Program
- Example Code
- Documentation
- Project Structure
- Running the IDE
- Testing
- Contributing
- License
24 languages spanning six decades of computing history:
| Language | Paradigm | Era | Status |
|---|---|---|---|
| BASIC | Imperative / Educational | 1964 | Complete |
| Logo | Turtle Graphics / Educational | 1967 | Complete |
| PILOT | Computer-Aided Instruction | 1969 | Complete |
| C | Systems / Procedural | 1972 | Complete |
| Forth | Stack-based / Concatenative | 1970 | Complete |
| Pascal | Structured / Educational | 1970 | Complete |
| Prolog | Logic / Declarative | 1972 | Complete |
| SQL | Relational / Query | 1974 | Complete |
| Smalltalk | Object-Oriented | 1980 | Complete |
| APL | Array / Mathematical | 1966 | Complete |
| Assembly | Low-level / x86 | 1950s | Complete |
| Brainfuck | Esoteric / Turing | 1993 | Complete |
| CICS | Mainframe / Transaction | 1969 | Complete |
| COBOL | Business / Data | 1959 | Complete |
| Fortran | Scientific / Numeric | 1957 | Complete |
| Haskell | Functional / Typed | 1990 | Complete |
| HyperTalk | Event-driven / English | 1987 | Complete |
| JavaScript | Scripting / Web | 1995 | Complete |
| JCL | Job Control / Mainframe | 1964 | Complete |
| Lua | Scripting / Embedded | 1993 | Complete |
| Python | Multi-paradigm / Modern | 1991 | Complete |
| REXX | Scripting / Mainframe | 1979 | Complete |
| Scheme | Functional / Lisp | 1975 | Complete |
| SQR | Report / Database | 1980s | Complete |
- Code Editor β Syntax highlighting, line numbers, and auto-indentation per language
- Output Console β Program results, error messages, and interactive input
- Graphics Canvas β Real-time turtle graphics rendering with zoom and pan
- Theme System β 25 built-in themes (Dracula, Monokai, Catppuccin Mocha, Gruvbox Dark, VS Code Dark/Light, GitHub Dark/Light, Nord, Solarized, retro CRT, and more)
- Find & Replace β Advanced search with regex, case sensitivity, whole word matching, and live match highlighting
- Auto-Completion β Context-aware completions from language keywords and document identifiers
- 14 Feature Panels β Lessons, AI Assistant, Error Explainer, Examples Browser, Turtle Inspector, Debugger, and more
- Native turtle support with position, heading, and pen state tracking
- 50+ drawing commands across Logo and BASIC
- Real-time rendering with Qt painter, zoom/pan controls
- Cross-language graphics support (Logo and Turbo BASIC)
- Statement-level stepping with breakpoint support
- Timeline recording of program execution with state snapshots
- Variable inspector with real-time value tracking
- Rewind capability to navigate backwards through execution history
- Lesson System β Step-by-step guided instruction with auto-verification
- AI Assistant β Intelligent code suggestions and explanations
- Error Explainer β Human-readable explanations of programming errors
- Examples Browser β 93 example programs across all 24 languages
- Achievements β Gamified progress tracking
| Requirement | Minimum | Recommended |
|---|---|---|
| Python | 3.10 | 3.12+ |
| PySide6 | Any recent | Latest |
| Pillow | 10.0.0 | Latest |
| OS | Windows 10, macOS 10.14, Ubuntu 20.04 | Any modern OS |
| RAM | 4 GB | 8 GB |
| CPU | SSSE3/SSE4 support | Any modern CPU |
git clone https://github.com/James-HoneyBadger/Time_Warp_Studio.git
cd Time_Warp_Studio
python run.pygit clone https://github.com/James-HoneyBadger/Time_Warp_Studio.git
cd Time_Warp_Studio
python run.pyThe run.py launcher will automatically:
- Check your Python version (3.10+ required)
- Create a virtual environment if one doesn't exist
- Install all dependencies
- Launch the IDE
That's it β you should see the Time Warp Studio window in a few seconds.
python run.py # Auto-setup and launch
python run.py --fresh # Force-recreate virtual environment
python run.py --skip-setup # Skip dependency checks (faster startup)
python run.py --no-venv # Use system Python (not recommended)
python run.py --help # Show all options# Create and activate virtual environment
python3 -m venv .venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
# Install dependencies
pip install -r Platforms/Python/requirements.txt
# Launch the IDE
python Platforms/Python/time_warp_ide.py./run.sh- Open Time Warp Studio
- Select BASIC from the language dropdown (top-right)
- Type this in the editor:
PRINT "Hello, World!"
FOR I = 1 TO 5
PRINT "Count: "; I
NEXT I- Press Ctrl+R (or click Run)
You'll see the output in the console panel below the editor.
SCREEN 1
COLOR 14, 1
LINE (10, 10)-(200, 100)
CIRCLE (150, 150), 50
PSET (300, 200)
PRINT "Graphics demo complete!"; Draw a colorful square
SETPENCOLOR "RED
REPEAT 4 [FORWARD 100 RIGHT 90]
; Draw a star
PENUP SETPOSITION 150 0 PENDOWN
SETPENCOLOR "BLUE
REPEAT 5 [FORWARD 80 RIGHT 144]
T: Welcome to the math quiz!
T: What is 2 + 2?
A: 4
TY: Correct! Well done!
TN: Not quite. The answer is 4.
program Hello;
var
i: integer;
begin
writeln('Hello from Pascal!');
for i := 1 to 5 do
writeln('Count: ', i);
end.parent(tom, bob).
parent(bob, ann).
grandparent(X, Z) :- parent(X, Y), parent(Y, Z).
?- grandparent(tom, ann).: GREET ." Hello from Forth!" CR ;
GREET
5 3 + . CRBrowse 93 more examples in the Examples/ directory or through File β Examples in the IDE.
| Document | Description |
|---|---|
| ARCHITECTURE.md | System design and technical details |
| INSTALLATION.md | Detailed installation instructions |
| CONTRIBUTING.md | How to contribute |
| Guide | Description |
|---|---|
| Getting Started | First steps with the IDE |
| IDE Basics | Editor, menus, and panels |
| Lessons | Working through guided lessons |
| Turtle Graphics | Drawing with the turtle |
| Settings | Customizing the IDE |
| Keyboard Shortcuts | Complete shortcut reference |
| Troubleshooting | Fixing common problems |
| Tutorial | Description |
|---|---|
| BASIC | BASIC programming with graphics |
| Logo | Turtle graphics programming |
| PILOT | Interactive lesson creation |
| C | C language basics |
| Pascal | Structured programming |
| Prolog | Logic programming |
| Python | Modern scripting & sandboxed execution |
| Lua | Lightweight scripting language |
| JavaScript | Scripting in the browser era |
| Haskell | Pure functional programming |
| Scheme | Lisp-family functional programming |
| Smalltalk | Object-oriented programming |
| REXX | Mainframe scripting language |
| Forth | Stack-based programming |
| Brainfuck | Esoteric Turing-complete language |
| COBOL | Business data processing |
| Fortran | Scientific computing |
| Assembly | x86 low-level programming |
| APL | Array programming language |
| HyperTalk | Event-driven scripting |
| JCL | IBM Job Control Language |
| CICS | IBM Transaction processing |
| SQL | Relational database queries |
| SQR | Structured Query reporting |
| Document | Description |
|---|---|
| FAQ | Frequently asked questions |
| Documentation Index | Full documentation listing |
| Examples Catalog | Example programs catalog |
Time_Warp_Studio/
βββ run.py # Smart launcher (auto-setup + launch)
βββ run.sh # Shell wrapper for Linux/macOS
βββ README.md # This file
βββ ARCHITECTURE.md # System design document
βββ CONTRIBUTING.md # Contributor guide
βββ LICENSE # MIT License
β
βββ Platforms/Python/ # Main application source
β βββ time_warp_ide.py # IDE entry point
β βββ time_warp/
β βββ core/ # Interpreter engine and services
β β βββ interpreter.py # Central command dispatcher
β βββ languages/ # 24 language executors
β β βββ basic.py # BASIC with Turbo graphics
β β βββ logo.py # Logo turtle graphics
β β βββ pilot.py # PILOT CAI system
β β βββ c_lang_fixed.py # C language subset
β β βββ pascal.py # Pascal programming
β β βββ prolog.py # Prolog logic engine
β β βββ forth.py # Forth stack machine
β β βββ python.py # Python sandbox executor
β β βββ lua.py # Lua scripting
β β βββ javascript.py # JavaScript interpreter
β β βββ haskell.py # Haskell functional
β β βββ scheme.py # Scheme/Lisp dialect
β β βββ smalltalk.py # Smalltalk OO
β β βββ rexx.py # REXX scripting
β β βββ brainfuck.py # Brainfuck esoteric
β β βββ cobol.py # COBOL business
β β βββ fortran.py # Fortran scientific
β β βββ assembly.py # x86 Assembly
β β βββ apl.py # APL array language
β β βββ hypertalk.py # HyperTalk
β β βββ jcl.py # JCL mainframe
β β βββ cics.py # CICS transactions
β β βββ sql.py # SQL queries
β β βββ sqr.py # SQR reporting
β βββ ui/ # PySide6 UI components
β β βββ main_window.py # Main IDE window
β β βββ editor.py # Code editor widget
β β βββ canvas.py # Graphics canvas
β β βββ feature_panels.py # 14 feature panels
β βββ graphics/ # Turtle graphics engine
β βββ features/ # Lessons, autosave, etc.
β βββ debugging/ # Integrated debugger
β βββ tests/ # Test suite (41 test files)
β
βββ Examples/ # 93 example programs across 24 languages
β βββ basic/ (5) βββ logo/ (5) βββ pilot/ (3)
β βββ c/ (5) βββ pascal/ (4) βββ prolog/ (4)
β βββ cobol/ (5) βββ sqr/ (4) βββ fortran/ (3)
β βββ haskell/ (3) βββ javascript/ (4) βββ assembly/ (3)
β βββ apl/ (3) βββ hypertalk/ (3) βββ brainfuck/ (3)
β βββ forth/ (3) βββ lua/ (4) βββ rexx/ (3)
β βββ scheme/ (4) βββ smalltalk/ (3) βββ python/ (5)
β βββ sql/ (4) βββ cics/ (4) βββ jcl/ (5)
β βββ demo/ (1) # cross-language showcases
β
βββ docs/ # Documentation
β βββ INDEX.md # Documentation index
β βββ guides/ # How-to guides
β βββ tutorials/ # Language tutorials
β βββ reference/ # FAQ and reference
β
βββ Scripts/ # Build and utility scripts
βββ tools/ # Development tools
βββ .github/ # GitHub CI/CD configuration
# Recommended: Smart launcher
python run.py
# Direct launch (requires venv activated)
python Platforms/Python/time_warp_ide.py
# Shell script (Linux/macOS)
./run.sh- All 24 language interpreters are initialized
- Configuration is loaded from
~/.time_warp/config.json - The main IDE window opens with editor, canvas, and output panels
- Your last theme and settings are restored
| Metric | Typical Value |
|---|---|
| Startup time | 2β5 seconds |
| Memory usage | 200β300 MB |
| Codebase | 56,000+ lines across 130+ Python modules |
Run from the repository root:
# Quick root-level test run
pytest -q
# Full package suite with integrated reporting
python Platforms/Python/test_runner.py --comprehensive
# Basic smoke suite
python Platforms/Python/test_runner.py --basic
# Full package tests directly via pytest
PYTHONPATH=Platforms/Python pytest Platforms/Python/time_warp/tests -q
# Optional backend load/security suites (require backend services)
RUN_BACKEND_INTEGRATION=1 PYTHONPATH=Platforms/Python pytest Platforms/backend/tests -qCurrent status: 1,700+ tests passing across 41 test modules covering all 24 language executors, graphics, GUI, and interpreter tests.
We welcome contributions! Here's how to get started:
- Fork the repository
- Clone your fork and create a feature branch:
git checkout -b feature/my-improvement
- Set up the development environment:
python -m venv .venv source .venv/bin/activate pip install -r Platforms/Python/requirements.txt - Make your changes following PEP 8 style
- Test that all tests pass:
pytest -q python Platforms/Python/test_runner.py --basic
6. **Commit** with a clear message and submit a pull request
See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
---
## π License
Licensed under the **[MIT License](LICENSE)**.
---
## π Resources
- **Repository:** [github.com/James-HoneyBadger/Time_Warp_Studio](https://github.com/James-HoneyBadger/Time_Warp_Studio)
- **Maintainer:** James Temple β james@honey-badger.org
- **Version:** 8.1.0
---
## π Acknowledgments
Time Warp Studio honors the educational legacy of BASIC, Logo, PILOT, COBOL, Fortran, APL, and other pioneering programming languages spanning six decades of computing history, while providing a modern IDE experience for today's learners. Special thanks to the open-source communities behind Python, PySide6/Qt, and the many educators who continue to champion accessible programming education.
---
**Happy Programming!** π