Releases / v0.94.0-rc1
v0.94.0-rc1 Squash And Stretch
2026-09-17 Engine
The first beta of v0.94.0. Particles squash and stretch, the Animating tab has a curve view and keys that ease, and the editor's biggest functions are now outlines you can read — verified frame-for-frame against the previous build.
Particles squash and stretch
Every particle track has a squash property, under 📈 Over each particle's life in the Inspector next to size. It keeps the particle's area while changing its proportions: the width is multiplied by the value and the height divided by it. Above 1 flattens, below 1 lengthens, and a curve from 0.6 through 1.4 back to 1 is the classic pop — a drop that lands, a coin that bounces. Like size and colour it animates over each particle's life, can be randomised per particle with 🎲, and has its own lane on the timeline. A mesh particle squashes the same way along its own axis.
A velocity-aligned billboard also stretches + by speed: extra length per unit of speed, so a fast spark draws a long streak and a slow one stays a dot, where before every particle on the track was stretched the same.
And a new emit shape, box: particles are born anywhere inside a box of the size you give — rain over a field, dust through a room, snow. The emitter gizmo draws its outline.
Particles fade where they meet the scene
A sprite crossing a floor or a wall was cut along a hard line, the one tell that a puff of smoke is a flat picture. Each particle now fades over the last few world units in front of whatever is behind it — soft edges under 🎨 Look, 0.5 by default, 0 for the hard cut.
The Particles tab fits its panel: fields sized to the width, a random range on two lines, forces as labelled rows, and the selected clip as its own section under ✳ Emission with a pool you can set. A looping effect whose particles outlive the loop no longer refuses every second generation's births. An effect is named by its file, so a renamed file is a renamed effect.
The Animating tab: curves, easing, packed rows
The dopesheet says when; the new 📈 Curves view (Tab) says how much and how fast. A node's position, rotation and scale are drawn as values over time, sampled through the same tracks the game plays, so what you see is the motion you get. Every key is a point on its curve: drag it in time and value, right-click empty space to key a lane there, right-click a point for its interpolation. Rotation is drawn in degrees as one continuous line, without the fold at 90° that Euler angles usually produce.
Right-click a key → ↗ Interpolation now offers Linear, Smooth (a spline through the neighbouring keys, so the motion has no corner), Ease in, Ease out, Ease in-out and Hold; with several keys selected the choice applies to all, and the key's shape says which. A node's row opens with ⏵ into its position, rotation and scale lanes, each key editable on its own lane. With a snap grid set, the ruler counts in frames.
Rows run from 4 to 80 px, typed in the toolbar or Alt+wheel, so a large rig fits the panel; a 🔍 rows filter shows only the rows whose name matches.
Under the hood
The editor's largest functions — the frame loop, the Inspector, the timeline,
the material and post-processing editors, the Play step, the network tick —
are now short outlines that call one function per phase. Every move was
checked against the previous build: floptle shot and floptle run on five
projects give pixel-identical pictures and identical reports before and
after. Comments across the workspace say what the code does today.
floptle shot draws particles textured, as the live frame does. The passes
that read the depth buffer — ambient occlusion, depth of field, motion blur,
2D lighting, soft particles — and authored post shaders build on OpenGL.
Upgrading
Nothing to change. A particle effect written before this release has no squash, no speed stretch and its old shapes, and draws as it did. An animation clip's holds load as Hold keys and are saved in the new form.
Switch the Hub to the beta channel to install this build.
Floptle Hub
Engine
The binaries are not signed yet. On macOS, right-click the app and pick Open the first time. On Windows, if SmartScreen appears, pick More info then Run anyway.