Repository navigation
v0.8.0
Bug Fixes
- Open a window instead of taking the desktop
- Honour alpha-channel priority for rg88 and r8
- Decode with the stream's own colour matrix
- Sample the screen under the layer, not the whole scene
- Find a unique buffer under its per-layer name
- Load a text input that has no value
- Open the package the project names
- Read a text layer's markup instead of drawing it
- Keep effect buffers out of the texture lookup
- Keep the base pass of a layer others draw from
- Leave the built-in inverse alone on modern GLSL
- Narrow a wide value the way HLSL does
- Narrow into swizzled targets and locals too
- Never narrow the name a line declares
- Let the compiler's own error mend a conversion
- Leave matrix arithmetic at full width
- Read a not on a float as a zero test
- Mend HLSL-isms from the compiler's own diagnostic
- Animate spritesheets whose last page is short
- Place the web host on the wallpaper's own output
- Place particle systems the same way up as everything else
- Keep the wallpaper still when the cursor is elsewhere
- Size text layers by their authored box
- Resolve script properties bound to user settings
- Draw scene-reading donors at their own z-slot
- Flip WE screen-space varyings for wgpu
- Sample the scene through the compose layer quad
- Ship the reference WEMath, WEColor and WEVector modules
- Hand update() typed vectors and alias thisObject
- Run every init before the first update
- Expose layer size and accept createLayer configs
- Hide text layers whose text goes empty
- Build hidden and empty text layers
- Key bundles by the baking binary
- Resolve label properties to empty text
- Apply user properties once at load
- Run text scripts only as modules
- Move text layers with their parent chain
- Anchor image layers by their alignment
- Size text once and anchor it by alignment
- Snap text quads to whole pixels
- Lay text out with the font's line metrics
- Pad text rasters like the engine
- Raster effect text at the engine's em size
- Expose text layer font and pointsize like WE
- Pass layer angles to scripts in degrees
- Report the cursor world position y-up
- Read the relative flag from the animation block
- Wrap at maxwidth in the text's own pixels
- Move compose-layer donors with scripted transforms
- Drop samplers compiled out by combos
- Derive the scene redraw hint from what the scene reads
- Keep numeric combo values numeric
- Parse every MDLA clip behind the version trailers
- Additive layers offset from the bind pose
- Derive puppet vertex layout from the mesh flags
- Walk model mesh headers by the format rules
- Keep every band's peak in the 16- and 32-band spectrum
- Reject a NUL byte instead of panicking in shaderc
- Interrupt a runaway wallpaper script
- Cap the script heap so a runaway cannot balloon memory
- Assert a runaway allocation stops, not which limit trips
- Pass the output position through to the renderer
Features
- Name a render target that resolves to nothing
- Name a texture that will not load
- Read MDLV0016 and MDLV0019 puppet meshes
- Parse text effects and sound volume
- Load text effect and sound volume scripts
- Let scripts write thisScene settings
- Parse property animations
- Play keyframed property animations
- Expose property animations to scripts
- Drive property animations from scripts
- Run effects on text layers
- Render text layers created by createLayer
- Rotate text layers about their origin
- Cut rows past maxrows like the engine
- Run pointsize and maxwidth property scripts
- Honour --render-debug skip-effect
- Evaluate compound preprocessor conditions
- Honour base-only, no-solid-final and pass-log
- Forward page console with KIRIE_WEB_CONSOLE
- Add a puppet animation layer player
- Read animation layer name and additive flag
- Play puppet animation layers
- Play mirror clips and report ended layers
- Drive puppet animation layers from scripts
- Name a blank project.json for what it is
Miscellaneous
- Allow build_for_spec's argument count
Other
- Format
- Format
- Format
Refactoring
- Drop the surface size the renderers never read
- Name the shared vertex layout for what it is
Tests
- Fuzz every parser against mutated real files
- Fuzz scene parsing against mutated input
Downloads
All assets are standalone executables — download, chmod +x, run.
| File | Variant |
|---|---|
kirie-linux-x86_64 |
scenes + video + images |
kirie-web-cef-linux-x86_64 |
+ web wallpapers, bundled Chromium (self-extracting, no system deps) |
kirie-web-webview-linux-x86_64 |
+ web wallpapers via the system webkit, presented natively on the compositor's background layer. One file — the webkit host is built in. Needs webkit2gtk-4.1, libsoup3, gtk-layer-shell installed; web items are Wayland-only. |
kirie-macos-aarch64 |
Apple Silicon — scenes, video, images, and web wallpapers through the system WebKit. Self-contained; run xattr -d com.apple.quarantine kirie-macos-aarch64 once, since it is not notarized. |