replicate/goo-logo: When a Logo Becomes a Living Shader

A tiny Cog package hides a headless OpenGL pipeline, an embedded logo, and a clean way to ship animated brand visuals as one deployable machine.

7 min read • View on GitHub • More from replicate

A centered logo floating inside a fluid, ink-like field that seems to move around it while the mark stays fixed. The image explains how this repo turns identity into motion by packaging a shader effect around a brand asset.
The point is not just a goo effect. The point is that the effect is packaged around the logo and shipped as one reproducible machine.
Key Takeaways

The logo is already inside the machine

Most logo tools wait for you to upload a mark and then place it on top of an effect. replicate/goo-logo does something stranger and more useful: the logo is embedded in the repo itself, so the output is not just rendered, it is packaged with its own identity.

This Cog model generates vibrant, animated or still "goo" backgrounds and overlays a logo in the center. It can output a single image (PNG, JPEG, TIFF) or a looping MP4 video, with a variety of customization options for the goo effect.

replicate/goo-logo README, Project Documentation · replicate/goo-logo README

What goo-logo actually makes

The repo is small, but the output range is practical. It can emit still images in formats like PNG, JPEG, and TIFF, or it can loop as MP4. That makes it useful for a landing page hero, a social post, a splash screen, or a branded animation that needs to feel alive without hiring a motion designer for every variation.

input = {
  "width": 1024,
  "height": 1024,
  "seed": 42,
  "scale": 0.5,
  "depth": 0.8,
  "speed": 1.2,
  "format": "mp4",
  "num_frames": 120,
  "fps": 30
}

# The same machine can also render a still by switching format to png, jpeg, or tiff.

How one request becomes a moving brand asset

The pipeline is the story. A request enters Cog, the embedded logo is decoded from base64, ModernGL draws the goo shader headlessly, Pillow composites the mark into the frame, and FFmpeg or OpenCV turns the result into a still or a looping video. What looks like a design effect is actually a sequence of deterministic stages.

One request passes through a compact rendering chain, then branches into either a still image or a looping video.

Why this runs on Replicate instead of staying a shader demo

The hard part is not the goo effect. The hard part is making OpenGL behave inside a container, then making that container repeatable on demand. That is why the repo leans on Cog, Docker, Mesa, EGL, Xvfb, and FFmpeg. They are the unglamorous pieces that turn a graphics experiment into something you can call like an API.

What it replaces, and what it does not

OptionStrengthWeaknessWhere goo-logo fits
Static logo overlay toolsFast placement on existing artworkNo real motion system or atmospheregoo-logo replaces the flat background with a generated one
Shader playgrounds like ShadertoyExcellent for visual experimentationWeak packaging and deployment storygoo-logo turns shader logic into a repeatable service
General AI logo generatorsBroad branding assistanceThey do not solve the exact motion pipelinegoo-logo is narrower, but much more controlled
replicate/goo-logoAnimated branded visuals with a fixed identity coreNot a general branding suiteThis is the point: a deployable logo machine

That narrowness is the design strength. The repo does not try to be a branding platform, and it does not pretend to replace a full motion studio. It solves one elegant problem very well: how to ship a shader-driven brand asset as something you can rerun, parameterize, and embed anywhere.

The larger idea: motion design as infrastructure

The most interesting thing here is not the goo. It is the packaging. Once a visual system is wrapped as a machine, the design work becomes reproducible, the deployment becomes portable, and the brand asset stops being a one-off file. It becomes infrastructure.