Home/Packages/Tracer

Tracer · spatial & games

Pathfinding is the easy 10%. Tracer does the rest.

Tracer is a pathfinding and game-AI SDK for real-time simulations with many moving agents: crowds, RTS-style unit groups, tactical squads. It bakes triangle-based navmeshes, routes single agents and whole swarms across them, reacts to obstacles that appear or vanish mid-game, and layers the surrounding game-AI toolkit — line-of-sight, fog-of-war, influence maps, combat engagement — on top. Every heavy service runs on the EvalApp pipeline, which tunes its own concurrency to the workload instead of needing a hand-picked thread count.

v1.1.2 net8.0 triangle navmesh + grid-tactics lane self-tuning concurrency
dotnet add package EvaluatedApplications.Tracer

The problem it solves

everything around "find me a path"

Most pathfinding libraries stop at "find me a path." Real games need a lot more around that: hundreds of agents converging on the same goal without re-solving the same route hundreds of times; obstacles that block and unblock at runtime without a full re-bake; visibility and cover queries for AI perception; a frame-time budget the pathfinder has to live inside of, not blow through. Tracer builds all of that in as one coherent SDK, running on a data-parallel pipeline that tunes its own concurrency to the workload.

What it does

the whole nav problem

Navmesh baking

Turn raw triangle geometry into a queryable navmesh, with obstacle-polygon exclusion and an optional hierarchical (coarse + fine) bake for large levels.

Single- and multi-agent pathfinding

One-shot smoothed paths, or a full swarm tick where agents sharing a goal reuse the same solve instead of paying for it per agent.

Dynamic obstacles

Block and unblock regions of a baked mesh at runtime without a full re-bake.

Line-of-sight, fog-of-war, influence maps

Visibility and area-control queries for AI perception and decision-making.

Combat engagement

Spatial-hashed attacker/defender resolution with pluggable damage/dodge/block formulas.

Grid tactics

A separate, bake-free lane (line-of-sight, movement range, cover, target selection) for tile/square-grid tactics games that don't need a navmesh at all.

Why it's useful

built for scale

One SDK for the whole nav problem

Not just A* — the layer of things games actually need around it ships with it.

Built for scale

Goal-sharing means many agents converging on one point solve close to the cost of one; adaptive path budgeting keeps large swarms inside a frame-time budget under pressure.

Two lanes

A full triangle navmesh for open/continuous worlds, plus a pure grid-tactics lane for tile games — pick the one that matches your level format, no forced conversion.

Self-tuning

Every stateful service runs on the EvalApp pipeline, which adapts its own concurrency live rather than needing a hand-picked thread pool per project.

Get started

minimal example

using Tracer; var world = new PathfindingWorld(); // Bake a navmesh from triangle geometry var baker = world.CreateNavMeshBakerService(); var mesh = await baker.BakeAsync(vertices, triangleIndices); // Query a single smoothed path var single = world.CreateSingleAgentService(); var waypoints = await single.QueryPathAsync(mesh, start, goal); // Or tick a whole swarm of agents at once var multi = world.CreateMultiAgentService(); var result = await multi.TickAsync(agents, mesh, tickNumber: 0);

What you need to know

good to know

Dependencies

EvalApp (the data-parallel pipeline runtime) and Microsoft.Extensions.DependencyInjection.Abstractions.

Proven in use

Built alongside the Eden game project, which uses Tracer for navmesh movement, perception/fog, combat resolution, and tactical squad control.

Target: .NET 8.0. License: proprietary. All capabilities are free to use today; a license key is reserved for possible future advanced features, none gated currently.