Game update

VERSION 0.119.1322: added motion-curve-modulation

JWildfireSwan · published · build 19904071

I now added the option to modulate motion-curves by numeric formulas in realtime. This may be used to add certain features on top of an existing motion-curve or generate the whole curve in an algorithmic way.

You can use any GDScript expression here that evaluates to a floating point number.

Available parameters: time_value, curve_value, frame, fps, bpm, offset, amp, freq, phase, pulse_width.

The <bpm> parameter is derived from the bpm-motion-curve of the flame and may be dynamic.

For simplicity, the following predefined functions (which do not require any arguments) are available:

sine(), cosine(), square(), sawtooth(), triangle(), noise(), gaussian(), sample_and_hold().

The modulation takes place on top of the looped curve, so you may see upto three curves (per motion curve) in the editor: normal curve, looped curve, modulated looped curve

Thanks Nicolas for the suggestion!

Now, I haved planned one more little feature, and then release 1.0 should come very soon!

Complete changelog:
VERSION 0.119.1322 (09.09.2025):
- added the option to modulate motion-curves by numeric formulas in realtime.
This may be uses to add certain features on top of an existing motion-curve or
generate the whole curve in an algorithmic way.
You can use any GDScript expression here that evaluates to a floating point number.
List of available parameters:
time_value, curve_value, frame, fps, bpm, offset, amp, freq, phase, pulse_width\
The <bpm> parameter is derived from the bpm-motion-curve of the flame and may be dynamic.
For simplicity, the following predefined functions (which do not require any arguments) are available:
sine(), cosine(), square(), sawtooth, triangle(), noise(), gaussian(), sample_and_hold().
You can specify an optional argument that amplifies the frequency.
For conditional expressions, use the syntax:
(<expression>) if (<boolean_expression>) else (<other_expression>).
The modulation takes place on top of the looped curve, so you may see upto
three curves (per motion curve) in the editor: normal curve, looped curve, modulated looped curve
Inspired by: https://gemini.google.com/share/4bf5ed4c2bb5 and https://claude.ai/public/artifacts/8c02d4f0-1c95-49d3-87ec-cfeb501ed866
Thanks Nicolas for the suggestion! (SWAN-145)
- motion-curve-editor: also show the current y-value
- fixed a bug in the undo-manager related to undo-ing a group of changes
- motion-curve-editor: added "play"- and "play from start"-buttons for animation preview
- fixed: avoid file-dialogs to open twice (at the same time) (SWAN-147)

More from JWildfireSwan

Other announcements

All events
Game update29 Aug 2026VERSION 4.12: post rendering effects and experimental WebGl exportIt has been a while, but I was really busy. With the current update there come two major two things: - post rendering effects, which is a separate shader pass to apply typical balancing effects, color grading effects (for example, to turn your artworks into "Matrix style"), Vignette and other effects - experimental WebGl export: this allows you to export your current scene to be rendered in a m…Game update14 Jun 2026RELEASE VERSION 4.9: new container types and lots of new (flame-)variationsThis major update brings a few bug fixes, some new interesting container types (e.g., a mode to create a classic ifs-iteration, including a non-linear part) and - maybe surprisingly - a large collection of 150 new variations for flame fractals. Complete changelog: VERSION 4.9.2800 (14.06.2026): - mandelbro3d: - fixed: field-mode is not saved when saving a scene with a weighted alternating hybri…Game update17 May 2026VERSION 4.0: domain rendering, backdrops and improved glass renderingThis major update brings another very flexible tool: domain rendering. You may imagine this feature in the way, that multiple scenes are rendered at the same time, and a function (the domain-partitioning-function) specifies, where in the global space, appears which scene. This may sound very abstract at first, but allows for some really unique effects. For example, you may create a shape, which…