Guess Iâ€™ll go first, with something thatâ€™s a little more normal than my last one.

This is a minimalist implementation, based on a parametric sigmoid curve generator instead of physics. Itâ€™s worth noting that if I were building an actual slime dripping dragon skull, Iâ€™d go to great lengths to make it look more realistic(?). But the sigmoid curve was fun to play with too!

```
// GLOBAL VARIABLES
export var speed = 68;
var hue = 0.3333;
var sat = 1;
var bri = 0.7;
var t0,t1,t2;
var gamma;
// UI sliders
export function sliderSpeed(v) {
speed = 128 * v;
}
export function hsvPickerColor(h, s, v) {
hue = h; sat = s; bri = v;
}
// PARAMETRIC SIGMOID GENERATOR - sigmoid easing curve with
// controllable slope broken into halves so we can guarantee
// that it starts at t==0, ends at t==1, and hits its halfway point at t==0.5
//
// https://medium.com/hackernoon/ease-in-out-the-sigmoid-factory-c5116d8abce9
function halfSigmoid(t,slope) {
return (1 / (1 + exp(-slope * t))) - 0.5
}
function sigmoid(t,slope) {
s1 = 0.5 / halfSigmoid(1,slope);
return s1 * halfSigmoid(2 * t - 1,slope) + 0.5;
}
// DRAWING - we use time() to generate a single sawtooth wave
// as a base, then use it to build a gamma adjusted sine wave
// to control brightness over time, and also to increase the
// maximum slope of our sigmoid curve over time, creating
// the appearance of acceleration due to gravity without doing any
// actual physics.
//
export function beforeRender(delta) {
t0 = time(0.15); // base sawtooth for timing everything
t2 = wave(0.75 + t0); // phase adjusted sine wave
t1 = floor(sigmoid(t0,speed * (1.5 * t2)) * pixelCount);
gamma = bri * t2 * t2 * t2; // gamma adjusted brightness
}
// light pixels based on how far they are from the current target point,
// generated by the sigmoid function. Use the precomputed gamma
// curve to determine brightness, so we slowly fade in and out.
export function render(index) {
var b = abs(index - t1) <= (6 * t2)
hsv(hue,sat,b * gamma)
}
```