GitHub - apresta/undula: Generate evolving textures from static images

1 min read Original article ↗

This C++ program generates smoothly-evolving textures by blending a user-specified set of images. With the right source material, this can result in animations with a "waving" or "breathing" feel, as seen in this example.

Video of evolving flowers texture

The only external dependency is OpenCV for image processing and rendering.

Usage:

# Install OpenCV dependency (on macOS).
brew install opencv

# Build the executable.
mkdir -p build
cmake -S . -B build
cmake --build build -j 8

# Run in real-time mode (assuming an "images" folder).
# Quit by pressing Ctrl-C in the terminal.
build/undula --images_path images/

# Run with a fixed random seed for repeatability.
build/undula --images_path images/ --seed 1234567890

# Change the animation speed by a factor.
build/undula --images_path images/ --speedup 2.5

# Run in offline mode to output a video (10 minutes at 30 frames per second).
# The output video will be named after the random seed.
mkdir -p recordings
build/undula --images_path images/ --recordings_path recordings/ --record_mins 10 --record_fps 30