Skip to content
hikari
RenderingEditorAIToolchainDocumentation
Download

© 2026 Flying Rat Studio.
All rights reserved.

Explore the engineDocumentationContributorsDownloadLicenseBack to top
Documentation / Overview
Browse docs
Overview
Tutorials17
OverviewPlay, Edit, and scenesFirst UI documentFirst game projectFirst entityComponent properties and the inspectorFirst mesh and materialFirst physics body and triggerFirst character controllerFirst session servicesFirst UIFirst input actionFirst messagesFirst runtime spawnFirst motionFirst skeletal animationAssets in Play (soft refs and hot reload)Dynamic editor recompile
Guides25
OverviewWorking in the editorDevelopment guideGameplay APIActor and component lifecycleThreads, jobs, events, and routinesGameplay AI tasksGame AI: perception and movement playgroundBrain assetsBrain execution for swarm populationsLocalizationGame cursorsChoosing component storageBuild and packagingProject filePluginsHikari Plugin APIData-driven content, JSON, and pathsScripting with KawaShader authoringChoosing and scaling shadowsTime of dayUser interfaceUI layoutUI widgetsMigration from Unity / Unreal
Systems32
OverviewArchitectureApplication lifecycleFrontends and driversPlatforms and supportSession services and cross-scene stateScenes and gameplayActor communication (hi.actors)Game-facing refsSave / replication wire versionCoordinate space and camera conventionsRenderingRenderer architecture mapFrame governorPipeline compilationSkeletal animationGPU particlesVisual ZonesVolumetric mediaInputAudioPhysicsMotion KitTemporal KitUI documentsAssets and ShinraPrefabsAsset residencyAsset formats (Shinra pipeline)Document schemasUI and editorEditor asset hot reloadEditor Project Selector
Language reference3
OverviewAkari GPU ABIAkari language referenceKawa language reference
Engine overview
Start exploring
  • No matching sections. Try fewer words or another topic.
NavigateEnter Openesc Close
Overview
Tutorials17
OverviewPlay, Edit, and scenesFirst UI documentFirst game projectFirst entityComponent properties and the inspectorFirst mesh and materialFirst physics body and triggerFirst character controllerFirst session servicesFirst UIFirst input actionFirst messagesFirst runtime spawnFirst motionFirst skeletal animationAssets in Play (soft refs and hot reload)Dynamic editor recompile
Guides25
OverviewWorking in the editorDevelopment guideGameplay APIActor and component lifecycleThreads, jobs, events, and routinesGameplay AI tasksGame AI: perception and movement playgroundBrain assetsBrain execution for swarm populationsLocalizationGame cursorsChoosing component storageBuild and packagingProject filePluginsHikari Plugin APIData-driven content, JSON, and pathsScripting with KawaShader authoringChoosing and scaling shadowsTime of dayUser interfaceUI layoutUI widgetsMigration from Unity / Unreal
Systems32
OverviewArchitectureApplication lifecycleFrontends and driversPlatforms and supportSession services and cross-scene stateScenes and gameplayActor communication (hi.actors)Game-facing refsSave / replication wire versionCoordinate space and camera conventionsRenderingRenderer architecture mapFrame governorPipeline compilationSkeletal animationGPU particlesVisual ZonesVolumetric mediaInputAudioPhysicsMotion KitTemporal KitUI documentsAssets and ShinraPrefabsAsset residencyAsset formats (Shinra pipeline)Document schemasUI and editorEditor asset hot reloadEditor Project Selector
Language reference3
OverviewAkari GPU ABIAkari language referenceKawa language reference
Engine overview
Overview2 min read

Swarm Brain benchmark

Measured 2026-09-22 on Apple M5 Max (arm64), Zig 0.16.0, ReleaseFast.

From src/hikari:

sh
zig build ai-population-bench -Dgame-src=<absolute example/src> -Doptimize=fast --summary all

One run, 600 simulated 60 Hz frames per case, no warm-up exclusion. Compilation is outside the timed interval. These are CPU microbenchmark results, not a game frame-rate guarantee. Re-run locally when comparing changes.

MembersMean µsp95 µsWorst admitted decision lateness, msLast member to hear noise, msOldest observation, ms
1007.527.7116.6783.3383.33
1,00062.1075.1383.33133.33516.67

Each case shares one code-authored Brain and admits at most 128 decisions, 128 perception steps and 32 rays per frame. All members must receive service and the noise. Compact execution is 48 bytes per member, versus 560 bytes for the full instance with local overrides and 16 history records. The complete benchmark fixture reserves 889,992 bytes at capacity 1,000 in either case, including sensing, positions, goals, bookkeeping and selected-member history.

The benchmark moves positions at decision admission, applies duration overrides, and evaluates a noise transition. Visibility uses an always-clear analytic query against an actor target. It excludes physics, event dispatch, scene gathering, route planning, the sample's per-frame motor, rendering and GPU work.

The 1,000-member case deliberately puts every member in sight range. Its ray budget cannot sustain a 10 Hz cycle for every member; observation age rises to about half a second. A fixed budget bounds work by allowing latency to increase. The runnable scene reports actual adapter costs and observation age separately.

A separate game-package test drives 1,000 actual swarm rows through the sample's Brain and route/movement loop, checks the eight-route-plan budget, delivers noise, and retires/reuses a slot without inheriting execution, route or selected history. See Swarm AI for the playable acceptance test.

PreviousShared AI perception benchmarkNext Tutorials

Documentation follows the current engine checkout.

Snapshot 86f12d68Source docs/reports/ai-population-benchmark.md
On this page Back to top