Navmesh baking
Turn raw triangle geometry into a queryable navmesh, with obstacle-polygon exclusion and an optional hierarchical (coarse + fine) bake for large levels.
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.
dotnet add package EvaluatedApplications.Tracereverything 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.
the whole nav problem
Turn raw triangle geometry into a queryable navmesh, with obstacle-polygon exclusion and an optional hierarchical (coarse + fine) bake for large levels.
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.
Block and unblock regions of a baked mesh at runtime without a full re-bake.
Visibility and area-control queries for AI perception and decision-making.
Spatial-hashed attacker/defender resolution with pluggable damage/dodge/block formulas.
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.
built for scale
Not just A* — the layer of things games actually need around it ships with it.
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.
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.
Every stateful service runs on the EvalApp pipeline, which adapts its own concurrency live rather than needing a hand-picked thread pool per project.
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);good to know
EvalApp (the data-parallel pipeline runtime) and Microsoft.Extensions.DependencyInjection.Abstractions.
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.