Files
Cursor Agentand西风逍遥游 66b069d1f9 Polish venom character framing and refresh captures.
Face the Quaternius Superhero Female toward a fixed front 3/4 camera during
the auto capture pass, note the free-pack bald base mesh, and check in the
updated Lavapipe PNG sequence.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
2026-09-11 12:06:48 +00:00
..

Venom Transform Demo

Interactive approximation of the Bilibili / Unity "毒液变装" look (BV12H4y1D7qf): glossy black symbiote coverage crawling up a textured character with an emissive frontier, tendril ribbons, and splash droplets.

What this proves

EVEngine can assemble that effect from existing pieces:

Layer Implementation here
Body coverage Custom mesh fragment shader (shaders/venom.frag) — height + fbm noise mask
Black goo look Dark albedo + high gloss specular + cool fresnel
Frontier glow Magenta/purple emissive band along the coverage edge
Tendrils Animated thin cylinders around the active frontier
Droplets Small spheres emitted near the front
Host mesh Quaternius Superhero Female (CC0) via model3d + custom material shader

This is intentionally a shader + props demo, not a volumetric metaball solver. That matches the Unity reference technique more closely than a full fluid simulation would.

Character asset

assets/quaternius/ vendors the CC0 Quaternius Universal Base Characters female FullBody glTF (same pack as examples/character-motion-lab). See assets/quaternius/LICENSE-CHARACTERS.txt and quaternius.com.

Run

# from repo root, after build/linux-debug is ready
make run/linux-debug GAME=examples/venom-transform

Headless / CI-style capture (Lavapipe + Xvfb):

export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.json
export XDG_RUNTIME_DIR=/tmp/xdg-runtime
mkdir -p "$XDG_RUNTIME_DIR" && chmod 700 "$XDG_RUNTIME_DIR"
export ALSOFT_DRIVERS=null
xvfb-run -a make run/linux-debug GAME=examples/venom-transform

On launch the demo auto-plays coverage 0 → 1, writes PNGs under captures/, then closes the window.

Controls

Key Action
Space Play / pause coverage
Left / Right Scrub coverage ±0.05
R Reset to 0 and play
P Save captures/venom-manual-*.png

Files

  • main.nut — scene, character load, tendrils, auto-capture
  • shaders/venom.frag — coverage / goo / edge shader (samples albedo)
  • config.nut — window + modules (model3d)
  • assets/quaternius/ — CC0 character glTF + textures
  • captures/ — PNG outputs from the auto demo

Captures

Auto-demo frames (Lavapipe + Xvfb):

coverage file
0% captures/venom-00-c0.png
28% captures/venom-01-c28.png
55% captures/venom-02-c55.png
82% captures/venom-03-c82.png
100% captures/venom-04-c100.png