novolis-simulation / getting-started.md
Getting started
Worlds, clocks, humanoids
dotnetsimulationgamedevnovolis
novolis-simulation composes worlds, cameras, planar agents, and optional racing scenarios on top of novolis-physics.
Prerequisites
Install
Meta-package (core stack without racing):
dotnet add package Novolis.SimulationAdd racing separately when needed:
dotnet add package Novolis.Simulation.RacingQuick start
using Novolis.Math.Arrays;
using Novolis.Simulation.World;
var world = new SimulationWorld(new DenseGrid<byte>(width, height), cellSize: 1f);Humanoid IK (skeletal)
Planar agent move is Novolis.Simulation.Kinematics. Skeletal FK/IK is Novolis.Simulation.Humanoid:
using Novolis.Simulation.Humanoid;
var bind = HumanoidBindPose.CreateDefaultTPose(1.8f);
var pose = HumanoidPose.FromBind(bind);
var worldPose = HumanoidPoseSolver.SolveWorld(bind, pose);
var targets = HumanoidFullBodyIkTargets.WithDefaults();
targets.LeftHand = worldPose.Position(HumanoidBone.LeftHand) + new System.Numerics.Vector3(-0.1f, 0.2f, 0.1f);
HumanoidFullBodyIk.Apply(worldPose, bind, targets);
HumanoidPoseSolver.BakeLocal(bind, worldPose, pose);Dogfood: d:\novolis\novolis-dogfooding\apps\avalonia\HumanoidLab (--smoke for headless).