webgpu first
a thin, modern path that doesn't apologise for itself. fall back to webgl2 only when the browser insists.
a game engine that whispers, hi bestie, want to render something cute today?
a thin, modern path that doesn't apologise for itself. fall back to webgl2 only when the browser insists.
compose materials with a small node graph that compiles to wgsl in the background. no toolchain, no surprises.
edit the shader, the script, the scene; the running game keeps its state. it just gets prettier.
physics, but the rhinestones bounce. click anywhere in the sandbox to drop a gem; it will collide with the chamfered walls in real time, dispatched by the same broadphase that runs your shipped game.
an early-2000s skinned IM client, except the friend on the other side is a compiler.
local chloe = require("chloe")
function love.update(dt)
scene.particles:step(dt)
scene.rhinestones:drift(0.04)
end
function love.draw()
chloe.gpu:clear("#F4E8DC")
scene:render()
end
* bench in browser, m2 air, release build, take it with a teaspoon of glitter
use chloe::{Scene, Sprite, Color};
fn main() -> chloe::Result<()> {
let mut scene = Scene::new(Color::hex("#F4E8DC"));
scene.spawn(Sprite::rhinestone().at(240.0, 120.0));
chloe::run(scene)
}
import { Scene, Sprite, Color } from "chloe";
const scene = new Scene(Color.hex("#F4E8DC"));
scene.spawn(Sprite.rhinestone().at(240, 120));
await chloe.run(scene);
local chloe = require("chloe")
local scene = chloe.scene("#F4E8DC")
scene:spawn(chloe.sprite.rhinestone():at(240, 120))
chloe:run(scene)