Skip to content

Awake Core

Dependency-free foundation for Awake: math, input, fixed-timestep loop, resource/bitmap I/O, and color handling. No dependency on awake:ecs, rendering, or any platform-specific backend — every platform target compiles it directly.

Installation

implementation(project(":awake:core"))

Packages

  • com.awakekt.awake.core.math — Vector3, Matrix4, Quaternion, Ray, fixed-point math, trig lookup tables.
  • com.awakekt.awake.core.input — input event types and mapping, platform-neutral.
  • com.awakekt.awake.core.application — the fixed-timestep game loop and application lifecycle hooks.
  • com.awakekt.awake.core.graphics — bitmap and low-level resource I/O.
  • com.awakekt.awake.core.colors — color types and conversions.
  • com.awakekt.awake.core.utils — shared dependency-free helpers.

Split out of awake:core as they grew independent test surfaces and target-specific needs:

  • awake:core:geometry — portable mesh geometry math (simplification, quantized vertex decoding), no file I/O.
  • awake:core:animation — skeletal animation runtime (Skeleton/Skin/AnimationClip/ AnimationPose, crossfade blending).

Proposed future modules

Not yet built. See docs/reference/module-architecture.md for the full proposal (dependency graph, per-module scope) before starting work on any of these — physics, assets, audio, platform, time, diagnostics, and extracting math/input out of this module into their own. When one of these actually gets built, give it its own README (like geometry's) and delete its section from that proposal doc in the same commit — don't let a proposal document describe a module that already exists.