See it running.

From an empty project to something moving on screen.

01

Rendering

Physically based materials, real-time lights and a sky that moves with them.

A sky with real depth.

Volumetric clouds come built in. They catch the sun, shade themselves, and fade into the horizon with no skybox textures to paint.

Volumetric cumulus clouds over a checkered ground plane in Prowl

Volumetric, not painted on

Clouds are real volumes with soft self-shadowing, so they hold up from any angle.

Lit by your sun

Move the light and the clouds re-shade with it, from bright midday white to warm sunset.

Part of the scene

Reflections and every camera see the same sky, so nothing looks pasted in.

The same clouds, re-lit as the sun moves.

Surfaces that reflect their world.

Physically based materials and reflection probes work together, so metal looks like metal and every surface picks up the scene around it.

Metallic-roughness PBR

The standard workflow your textures already use. Dial metal and roughness and the lighting stays believable.

Reflection probes

Probes capture the sky, the ground and nearby objects, so shiny surfaces reflect the scene they sit in.

A grid of gold spheres stepping from mirror-smooth to fully rough
One gold material, from mirror-smooth to fully rough.
Close-up of polished gold spheres reflecting the sun, sky and checkered floor
Smooth metal picks up the sun, the clouds and the floor.
A gold sphere reflecting volumetric clouds captured by a reflection probe
Volumetric clouds show up in reflections too.

Light the whole scene.

Fill a level with hundreds of real-time lights, then let fog and bloom carry them into the distance.

A field of pillars lit by hundreds of small colored point lights
Hundreds of colored point lights, every one casting light onto the scene.
Colored lights glowing through distance fog under a red sunset sky
A cluster of lights at sunset, softened by distance fog.

Shadows on every light

Point, spot and directional lights all cast shadows, with cascades for the sun and cubemap shadows for point lights.

Volumetric fog

Lights scatter through volumetric fog and fog volumes, and distance fog blends the horizon into the sky.

HDR and bloom

Bright lights glow past their edges, with a choice of tonemappers including ACES and AgX.

The finishing touches.

Particles for sparks and magic, and cameras that can render anywhere in the scene.

Glowing orange sparks streaking away from a sphere

Particle systems

Sub-emitters, trails, collision, flipbooks and every emission shape, for sparks, fire and debris.

A burst of glowing pink and cyan particles

Glowing effects

Particles can cast light of their own and bloom like any bright surface.

A framed screen in the scene showing the view from a second camera

Multiple cameras

Render a second camera into a texture for screens, mirrors and security feeds.

02

Runtime & Scripting

Engine and game in one language, running with or without the editor.

One language.
Zero boundaries.

Most engines split you in two: the engine in C++, your scripts behind a binding layer. Prowl removes that wall. Engine and game code are the same language, the same binary.

Everything is plain C#

Renderer, physics, audio, ECS. Read it, change it. Built-in components are just regular scripts, so yours can do anything they can.

Tooling just works

Prowl projects are standard .NET .csproj files. Open and edit your code in any editor you like, Rider, VS Code or Visual Studio, with no plugin or special extension.

Hot-reload, even in play mode

Save a script and the change lands in the running game. No restart, no lost state. IReloadAware and ReloadIgnore give you control when you need it.

PlayerController.cs C#
using Prowl.Runtime;
using Prowl.Vector;

// Your component. Engine component. Same thing.
public class PlayerController : MonoBehaviour
{
    public float speed = 5f;
    private RigidBody3D rb;

    void Start()
    {
        // No reflection magic, direct reference
        rb = GetComponent<RigidBody3D>();
    }

    void FixedUpdate()
    {
        var input = Input.GetWASD();
        rb.AddForce(new Float3(input.X, 0, input.Y) * speed);
    }
}

No editor required.

The runtime is an ordinary .NET library. Reference it, write a class, run it.

Samples HelloProwl
Program.cs C#
using Prowl.Runtime;
using Prowl.Vector;

new MyGame().Run("Simple Cube", 1280, 720);

public sealed class MyGame : Game
{
    public override void Initialize()
    {
        var scene = new Scene();

        // Camera
        GameObject cam = new("Main Camera");
        cam.Transform.Position = new(0, 2, -8);
        cam.AddComponent<Camera>();
        scene.Add(cam);

        // Light
        GameObject light = new("Directional Light");
        light.AddComponent<DirectionalLight>();
        light.Transform.LocalEulerAngles = new Float3(-80, 5, 0);
        scene.Add(light);

        // Cube
        GameObject cube = new("Cube");
        MeshRenderer mr = cube.AddComponent<MeshRenderer>();
        mr.Mesh = Mesh.CreateCube(Float3.One);
        mr.Material = new(Shader.LoadDefault(DefaultShader.Standard));
        scene.Add(cube);

        Scene.Load(scene);
    }
}

Just a library reference

Add it to a normal .csproj and go.

No editor in the build

Editor code never ships inside your game.

Runs headless

Equally at home in a server, a test, or CI.

The editor is a client

Built on the same public API you write against.

More runtime-only samples
03

Anthology

The MIT-licensed libraries Prowl is built from, each one usable on its own.

Built from a constellation
of MIT C# libraries.

The runtime is the core, assembled from libraries that each stand on their own. The editor sits on top and depends on nothing else.

Prowl.OrigamiWidgets built on PaperProwl.EmberScript Hot ReloadProwl.PhotonicLightmap BakerProwl.RosettaLocalizationEDITOR ONLYProwl.EditorOPTIONALScene editing, gizmos, hot-reloadonly dependencyProwl.RuntimeCOREComponents, scenes, rendering, physics, audioProwl.GraphiteGPU AbstractionProwl.ClayglTF / OBJ / FBXProwl.EchoSerializationProwl.PaperImmediate Mode UIProwl.UnwrapperUV AtlasProwl.ApertureImage LoadingARRIVING TRANSITIVELYProwl.Quillvia PaperProwl.Scribevia QuillProwl.Vectorvia Clay and ScribeEditor depends only on the runtimeDirect package reference

The editor depends only on the runtime. Every box is a standalone, MIT-licensed package in github.com/ProwlEngine/Anthology

Use any piece on its own.

Every subsystem ships as its own MIT-licensed NuGet package. The runtime lives in the Prowl repo; everything below it comes from the Anthology monorepo. Pull just the one you need.

Browse Anthology on GitHub
Prowl.Runtime Core

The engine itself. Components, scenes, rendering, physics and audio, in one ordinary .NET library your game references directly.

Engine
Prowl.Graphite Runtime

A low-level, cross-platform GPU abstraction for Windows, Linux and macOS. Powers the rendering layer.

Rendering
Prowl.Clay Runtime

Model importing for glTF 2.0, GLB, VRM, OBJ and FBX into one read-only model graph. Pure C#, no native dependencies.

Assets
Prowl.Echo Runtime

Serialization via an intermediate representation you can inspect and modify before it becomes binary or text.

Serialization
Prowl.Paper Runtime

The immediate-mode UI framework the editor is built in. Retained-mode results, immediate-mode ergonomics.

UI
Prowl.Unwrapper Runtime + Editor

Turns any triangle mesh into a non-overlapping UV atlas, ready for lightmaps and AO bakes.

Meshes
Prowl.Aperture Runtime

Image decoding in managed C#, replacing the ImageMagick dependency for texture loading.

Imaging
Prowl.Quill Via runtime

Hardware-accelerated, anti-aliased 2D vector graphics. The renderer underneath Paper.

Graphics
Prowl.Scribe Via runtime

TrueType parsing, text layout and Markdown, with no native dependencies. Draws the text Quill renders.

Typography
Prowl.Vector Via runtime

Vectors, matrices, geometry, noise and collision, in 32- and 64-bit. The math the others are built on.

Math
Prowl.Slang Via Graphite

A .NET wrapper over the Slang shader compiler, covering its COM API plus shader reflection and type APIs.

Shaders
Prowl.Crumb Via Graphite

A tiny, high-performance tokenizer that lexes directly over a ReadOnlySpan<char>. Built for DSLs, markup and config formats.

Parsing
Prowl.Origami Editor

The official component library for Paper. The widgets and gizmos the editor interface is assembled from.

UI
Prowl.Ember Editor

Script hot-reloading. Components opt into reload behaviour with IReloadAware and ReloadIgnore.

Hot Reload
Prowl.Photonic Editor

A progressive CPU lightmap baker. Path-traced direct and indirect lighting, BVH4 and AVX2 accelerated.

Lighting
Prowl.Rosetta Editor

Lightweight, backend-agnostic localization for .NET. Works outside Prowl just as well as inside it.

Localization
Prowl.Drift Standalone

A pure .NET 2D physics engine. Rigid bodies, collision shapes and constraints, with no native binaries.

Physics
Prowl.Wicked Standalone

Authoritative client-server multiplayer with IL-weaved RPCs and automatic state replication. No source generators.

Networking
04

And more

Editor tools, physics, animation, VR, terrain and the rest of what ships in the box.

A full editor, familiar from day one.

A Unity-like layout and workflow on Windows, Linux and Mac, built entirely on Prowl's own UI libraries.

Every panel you expect

Scene view, hierarchy, inspector, project browser, console and game view, docked however you like and remembered between sessions.

Playtest without leaving

Hit play and test in place, with undo/redo, gizmos and hot-reload right alongside.

Extend it in C#

Write custom component, property and scene-view editors for your own tools.

Twelve languages

The editor is localized into English, German, Spanish, French, Italian, Japanese, Korean, Polish, Portuguese, Russian, Turkish and Chinese.

The Prowl editor with the scene view, hierarchy, inspector, project browser and console

Make it yours.

Customizable color palettes and sizing, applied across the whole editor.

The Prowl editor in the Graphite theme, showing a post processing
Graphite · Post processing Same scene, same camera. Only the theme changes.

Built to drive.

Powered by Jitter Physics 2, with a wheel collider that has suspension and slip-based grip built in. The vehicle sample has six to drive, from a go-kart to a six-wheeled army truck and a motorcycle.

Character controller

A ready-made controller that copes with stairs, slopes, low ceilings and moving platforms.

Joints and motors

Hinges, ball sockets, sliders, limits and motors for doors, ragdolls and machines.

Triggers, layers and queries

Trigger volumes, layer-mask filtering, raycasts and shape queries from one API.

Colliders

BoxSphereCapsuleCylinderConeConvex HullMeshModelTerrainWheel

10

Collider types, including terrain and wheels

13

Joint, constraint and motor types

Characters that move like they mean it.

A new animation graph drives everything, from simple clips to motion matching and physics-driven ragdolls.

Motion matching

Fluid, responsive locomotion picked straight from your animation data.

Ragdolls and active ragdolls

Go limp on impact, or stay physically simulated while still following the animation.

Skinned meshes

Bone animation and blendshapes on the skinned mesh renderer.

Step inside your game.

Headset and controller tracking with SteamVR or the Meta app. The samples run from the bare minimum to a full physics playground.

Hands that grab

Controllers drive hands that pick up, throw and climb.

A fully simulated body

In the VR Showcase the player is a physics body, so the world pushes back and you ride whatever you stand on.

Walk, turn or teleport

Smooth or snap turning, crouching, jumping and teleport movement, all in the showcase.

Bake light that bounces.

Prowl.Photonic is a progressive CPU lightmapper, so the bake keeps refining while you watch.

Path-traced

Direct and indirect lighting, accelerated with BVH4 and AVX2.

Automatic lightmap UVs

Prowl.Unwrapper turns any mesh into a non-overlapping UV atlas, ready to bake.

Baked light probes

Moving objects pick up the baked lighting too.

Two ways to build UI.

Immediate mode for tools and debug panels, GameObjects for menus and in-world screens.

Paper

Immediate-mode UI with vector graphics and text from Quill and Scribe. The whole editor is built with it.

GameObject UI

RectTransform layout, buttons, sliders, layout groups and drag-and-drop events, on screen or in world space.

Prowl Actions

Event callbacks you wire up in the inspector, saved with the scene.

Landscapes, painted in.

A dedicated terrain editor for sculpting, painting and populating large outdoor scenes.

Sculpt and paint

Heightmap and splatmap painting, with quadtree LOD keeping distant ground cheap.

Grass and trees

GPU-instanced grass and trees with LOD distances.

Holes

Cut openings for caves, tunnels and pits.

Everything else in the box.

Spatial audio

3D audio with attenuation, Doppler and an effect chain. WAV, MP3, OGG and FLAC.

Input actions

Action assets with composites and processors for keyboard, mouse and gamepad.

Nested prefabs

Apply, revert and override tracking, with prefabs inside prefabs.

Async tasks

GameTask sequences that wait on frames or time, or hand work to a worker thread.

Asset pipeline

GUID references, auto-reimport, custom importers and threaded loading.

Standalone builds

Windows, Mac and Linux, with packed assets and per-platform profiles.

Plugins

Managed and native plugins, organized with assembly definitions.

450+ tests

Unit tested across the runtime and the editor.

Read the source.

Every system listed here is plain C# you can open. No black boxes.