Dev server
A directory served over HTTP, a WebSocket telling of each change to a file in it, a child process streamed, all on one thread's loop (helder.async); GET /quit ends it all
An app and game stack in Haxe, with a TypeScript frontend, compiled by hxmc to native code and WebAssembly. These are its examples; the 22 with a Play button run here, in your browser.
A directory served over HTTP, a WebSocket telling of each change to a file in it, a child process streamed, all on one thread's loop (helder.async); GET /quit ends it all
Chains of balls on helder.physics' distance joints hanging from a beam, a heavy ball on a ball joint swinging through them; click to swing it again
A textured cube with rounded, lit edges casting a soft shadow, depth-tested, its matrices a uniform block; drag it to turn it
A scene rendered into a texture with its own depth buffer each frame, then shown on the faces of the cube
Balls and tumbling boxes dropped into a walled box by helder.physics (contacts with angular impulses, restitution, friction, sleeping at a fixed step), drawn by helder.scene with shadows; click to drop more
Every portable texture format, written from bytes and rendered into, side by side; depth textures rendered and sampled
A glTF 2.0 scene (a .glb referenced with Model.of, typed from the file) drawn by helder.scene's renderer: metallic-roughness materials, a sun with a shadow map under a sky, a keyframe animation from the file; drag or use the arrows to turn around it
Mini golf on floating islands, a small mobile 3D game: drag back from the ball to aim and shoot, orbit and pinch the camera elsewhere; nine holes on helder.physics at a fixed step, a <Scene> under a HUD and menu in ui, best scores saved
Download for Android (APK) 3.5 MB · built from 46a6bdf
Sixty-three shapes in three instanced draws: a vertex buffer for the shapes, an instance buffer for where, how big, how turned and what colour
A mail client's three panes: folders, messages sorted by a click on a column's title, the one selected read beside them; a toolbar, shortcuts, search and undo
A checkered floor to the horizon, filtered trilinearly through generated mip levels, and swatches of a texture's levels uploaded one by one
The same markup and signals as the drawn widgets, on the platform's own controls (GTK 3 on Linux, the DOM in a browser), laid out by helder.ui's flexbox
A small solar system as a scene graph: planets on turning nodes, a moon on a planet's, a fixed-step clock, the star a point light, a debug overlay of frame times (O)
A scene in ui's layout, all markup: <Scene> beside a panel, nodes turned by signals, a planet picked by a click, its name over it (<Ui>)
Fonts parsed, shaped and rasterized in Haxe: kerning, Arabic joining, right-to-left and mixed runs, combining marks; type to reshape
helder.scene's optional renderer features together: an environment map lighting metal and plastic spheres, a normal-mapped crate, a morphing surface, two shadow cascades, see-through glass; drag to turn around
A card of plain views styled by a StyleSheet of its own: a field, a checkbox, a switch, a badge and buttons, light and dark
A 440 Hz sine for two seconds from an audio callback that allocates nothing: WebAudio here, ALSA, Core Audio or WASAPI natively
A coloured triangle: a vertex buffer, a pipeline and shaders written in Haxe, compiled to WGSL, GLSL, MSL and HLSL
The counter in TSX: a signal, markup bound to it, a button that changes it
A TypeScript program checked by tsgo and lowered straight to hxmc's IR, native or wasm: a class with a private field, modules, a promise and a timer
A TypeScript program ticking on a timer, rebuilt by helder dev as its files change and swapped in
The todo list in TSX: signals, For keeping a row per item, a text field, checkboxes and filters, components of its own
A capsule character of helder.physics (Character: steered, grounded by a ray, jumping) walking among crates it pushes and onto a platform, the camera following; arrow keys, WASD or a gamepad's stick walk, space, A or the lower right corner jumps
The smallest JavaScript island: a button counting its clicks, rendered into the page at build time, hydrated by its own 42 KB bundle
A JavaScript island calling a wasm32-wasi module through typed exports: strings, numbers and bytes in bulk