Skip to content

Releases: awakekt/awake

v0.1.0-alpha.4 — Pacing, State Restoration & Skybox Pipeline

Choose a tag to compare

@ronjunevaldoz ronjunevaldoz released this 18 Sep 16:24
v0.1.0-alpha.4
c824956

Added

  • Named scene entity creation helper. Added SceneAppLifecycleRuntime.findOrCreateEntity(name) to retrieve or instantiate and label missing scene entities during runtime authoring and testing.
  • Autonomous 3D scene dirtiness tracking and frame loop pacing override. Added isRealtimeProvider and isDirtyProvider parameters to RenderSystem3D and defaultInfrastructureSystems with allocation-free primitive camera and viewport change tracking, enabling the engine to bypass full scene re-planning and draw call compilation on static viewports. Added frameRateOverride to DesktopFrameLoop to allow host applications to dynamically rebind target frame rates at runtime.
  • Window focus throttling and background frame rate pacing. Added throttleCpuWhenNotForeground and configurable backgroundFrameRate to WindowConfig and AppWindowConfigBuilder, bound GLFW window focus querying (glfwGetWindowAttrib(window, GLFW_FOCUSED)), and wired focus-adaptive frame pacing into DesktopFrameLoop and VulkanDesktopHost to eliminate unnecessary CPU/GPU battery drain when unfocused.
  • MutableState and mutableStateOf restoration. Restored State<T>, MutableState<T>, and mutableStateOf(initial) with Kotlin property delegation (getValue/setValue) and destructuring operators in :awake:compose:runtime, providing standard, idiomatic local state containers for remember across all Compose UI targets.
  • Sealed skybox mode hierarchy, cubemap orientation, and clip-space math helpers. Refactored Skybox.mode into a sealed interface (Procedural, Cubemap, SolidColor) with backward-compatible property delegates, introduced CubemapFaces orientation definitions and 90° FOV lens projection, added unprojectFarRay and unprojectClipToWorld in shader-dsl, and scoped the clip space decision matrix to engine skills.
  • Cubemap texture and runtime shader pipeline. Added 6-face cubemap metadata validation and packing in TextureAsset, cubemap binding contracts in ResourceBinding, ASL textureCube resource bindings and textureSampleCube/textureSampleLevelCube builtins in shader-dsl, hardware cubemap image view creation for Vulkan (VK_IMAGE_VIEW_TYPE_CUBE) and WebGPU (GPUTextureViewDimension.Cube), and SkyboxCubemapShader with uniform layout packing in shader-pack.
  • Pull request governance and milestone policy. Added CI verification and agent workflow invariants requiring every pull request to be linked to an active milestone and to update CHANGELOG.md.
  • Version-one project contract. Added the shared awake.project.json and assets.lock.json models and structural validators for Core and Studio consumers, including project-relative path, plugin, version, and SHA-256 pin checks.
  • Portable SHA-256 content digest. Added a multiplatform Core IO digest utility for reusable content identity and integrity verification.
  • Derived project compatibility metadata. Canonical project manifests can declare an explicit minEngineVersion, while the published project module exposes the Git-derived engine version without hardcoded defaults; Central releases now publish automatically after validation.

Fixed

  • Rotation-invariant shadow cascade stabilization and allocation-free chart rendering. Derived analytical bounding spheres for frustum cascades in ShadowCascadesMath to eliminate projection scaling wobble on camera rotation/orbit, corrected cascade containment and border PCF clamping in AslShadowShaders, and added showDots = false option with direct path evaluation in ShadcnLineChart to eliminate per-frame allocations and canvas draw call spikes.
  • Selective shadow depth pre-pass recording. Restrict Vulkan and WebGPU depth pre-pass loops to only active directional cascades and authored subpasses instead of clearing and submitting passes across all 28 shadow array layers each frame.

v0.1.0-alpha.3

Choose a tag to compare

@github-actions github-actions released this 17 Sep 18:50
v0.1.0-alpha.3
55b67df

What's Changed

New Contributors

Full Changelog: v0.1.0-alpha.2...v0.1.0-alpha.3

v0.1.0-alpha.2

Choose a tag to compare

@github-actions github-actions released this 12 Sep 16:12
v0.1.0-alpha.2
3e899aa

v0.1.0-alpha.1 — First Public Maven Release

Choose a tag to compare

@ronjunevaldoz ronjunevaldoz released this 12 Sep 10:12
v0.1.0-alpha.1
ba06f96

Awake Engine v0.1.0-alpha.1 — First Public Maven Release

Highlights

  • First Public Maven Central Distribution: Published under coordinates com.awakekt.awake:* across Android, Desktop JVM, iOS, Web/Wasm, and multiplatform root publications.
  • Multi-OS Native Prebuilts: Vulkan bindings and Jolt Physics C++ libraries prebuilt and packaged for macOS ARM64, macOS x86_64, and Linux x86_64.
  • Verified Consumer Integration: Validated against the awake-template standalone multiplatform consumer project.

Added

  • Frame rate pacing & FPS control (FrameRateMode): Introduced FrameRateMode (Unlimited, DisplaySync, TargetFps(fps)) in :awake:engine:platform allowing explicit frame rate capping, display VSync locking, or unlimited rendering across all target platforms.
  • Interactive FramebufferDebugger & render diagnostics: Added visual render target diagnostics, depth/color buffer inspection, and diagnostics tooling to sample showcases.
  • ECS family caching and component storage optimization: Optimized query family matching, sparse set lookups, and system iteration performance.

Changed

  • Deprecated legacy scene-shaped renderer and offscreen overloads in favor of resolved GpuPassInput packets.
  • Routed RenderSystem scene frames through GpuSceneFrame.toPassInput, carrying directional and point-light payloads plus planned shadow subpasses through the generic render contract.
  • Vulkan's generic packet executor forwards planned shadow matrices into depth pre-pass recorders for onscreen and offscreen submissions.
  • Generic Vulkan and WebGPU offscreen packet preparation consumes authored lighting payloads instead of falling back to default directional light values.

Fixed

  • Frame loop timing and delta measurement: Corrected frame loop implementations (DesktopFrameLoop, AndroidFrameLoop, IOSFrameLoop) to measure delta time from frame start to frame start, preventing runaway/infinite FPS calculations.
  • Jolt Physics buoyancy evaluation: Fixed body lock validation order in applyBuoyancy to prevent JVM assertion errors (assert succeeded();) on destroyed bodies.
  • Heightfield tumbling cross-architecture variance: Hardened physical simulation verification invariants across ARM64 (macOS) and x86_64 GCC (Linux).