โ† All examples

godot shaders

Jelly wobble with squash and stretch

Make a mesh wobble like jelly: a damped sway that grows with height, a periodic bounce with volume preserving squash and stretch, and a glossy translucent body with a soft inner glow.

Recorded render of Jelly wobble with squash and stretch

What this component contains

  • ATTRIBUTION.md
  • LICENSE
  • README.md
  • component.json
  • demo.tscn
  • inspect_shader.py
  • jelly_wobble.gdshader
  • material.tres
  • preview.png
  • test_package.py
  • verification/native.json

How it works

Shader type
spatial
Render modes
cull_back
Parameters
jelly_color (vec4 = 0.35, 0.9, 0.45, 0.82), core_color (vec4 = 0.85, 1, 0.6, 1), bounce_period (float = 1.6), squash_amount (float = 0.18), wobble_amount (float = 0.12), wobble_frequency (float = 11), damping (float = 3), object_height (float = 1) and 1 more
Use it on
A mesh centred on its origin; set `object_height` to its height so the base stays planted.
Result
A green translucent blob that bounces, squashes and sways back to rest every 1.6 seconds.
Renderers
compatibility: compiled and rendered, forward plus: not verified, mobile: not verified
Placement
res://baltor/godot_shaders/jelly_wobble/

Recorded checks

godot 4.7.2.stable.official.ed1daf0bf

  • contract_static
  • engine_run
  • engine_log_clean
  • shader_in_scene
  • capture_written
  • render_not_uniform
  • shader_changes_pixels

Limits to consider

Normals are not updated for the deformation, so lighting is slightly off at full squash. The bounce is a timed loop, not a physics response. Transparency means it is not depth sorted against other transparent objects.