Skip to content

ViciousSquid/Fio

Repository files navigation

MIT License Status

A modular 3D engine and brush-based CSG level editor inspired by Radiant and Hammer

Key Features

  • 🔁 Runtime-switchable Forward & Deferred rendering
  • 🎨 Unified shader system across pipelines
  • 🧠 Entity I/O logic system inspired by Source engine
  • 🧱 Classic brush-based CSG editing
  • Designed to bring back the immediacy of classic Radiant/Worldcraft workflows

Linux: use the included Dockerfile or run from source

image

Core Workflow

  • Editor and engine run as a unified environment
  • Hit play instantly — no compile or bake step
  • Iterate on gameplay and logic in real-time
  • Design, test, and refine in a single environment
  • Creations can be published and shared

Logic & Gameplay

  • Entity I/O system (Half-Life 2–style)
  • Visual scripting (25 examples)
  • NPCs/monsters
  • Node pathfinding
  • Logic Gates, Triggers, Timers

Rendering

  • Dual rendering pipelines (Forward & Deferred, switchable at runtime)
  • Real-time dynamic lighting with shadows
  • Fog, glass, water and overbright shaders
  • Moving and rotating brushes
  • World Portals (Prey 2006 style)
  • Frustum culling

Technical

  • JSON level format
  • OBJ model support
  • OpenGL 3.3 target
  • Optimized for Snapdragon 8CX / Windows-on-ARM

🗎 Modular architecture, fully open source (MIT License)


image

Architecture Overview

Fio is structured as:

  • Editor Layer (PyQt UI, tools, asset browser)
  • Engine Layer (rendering, physics, AI)
  • Rendering System
    • BaseRenderer (shared interface)
    • Forward and Deferred pipelines (runtime-switchable)
    • Shared shader system

Why Fio exists

Most Python 3D engines focus on simplicity or education.

Fio is built as:

  • a rendering experimentation platform
  • a level editor inspired by classic BSP workflows
  • a systems-driven engine with tooling-first design

🚀 Quickstart:

Python 3.10+ is required

  1. Clone and Enter the Directory:
git clone https://github.com/ViciousSquid/Fio.git
cd Fio
  1. Setup Virtual Environment (Recommended)
python -m venv venv
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate
  1. Install Dependencies:
pip install -r requirements.txt
  1. Launch the Editor:
python main.py

🤝 Contributing

Contributions, feedback, and experiments are welcome. Check issues or open a discussion.

image

About

A real-time liminal Quake/Hammer-style CSG level editor and game engine. Optimised for mobile CPUs

Topics

Resources

License

Stars

Watchers

Forks

Contributors