Version 2.1.8 Supported platforms: Windows and Linux
This document catalogs the features currently implemented in RetroStudio. It separates procedural Retro Generators from processing effects, because they are created and used differently.
The current build contains:
- 10 procedural Retro Generators
- 16 processing effects
- 5 masks
- 2 bundled declarative shader recipes
- 8 dithering choices
- 4 built-in color palettes
- 49 built-in character sets
Every layer can have its own independent effect stack, including:
- Images, animated images, and videos
- Background images
- Text and character-art layers
- Sprite sheets
- SVG and native vector layers
- Solid-color layers
- Retro Generator layers such as Matrix Rain
- Adjustment and Foreground FX layers
Effects are non-destructive. They do not modify the source file. Each layer's effects can be enabled or disabled, reordered, removed, configured, animated, keyframed, and saved as a JSON stack preset.
Groups can also have effects and masks. A group first composites its children to an offscreen image, then applies the group's masks, effects, transform, opacity, and blend mode.
An Adjustment layer is special: its effects process the already-composited layers beneath it. A Foreground FX layer is an adjustment layer placed in the Foreground role, making it convenient for rain, snow, scanlines, color treatment, and other overlays that should affect the scene below.
Effect order matters. An effect near the top of a stack receives the result of the effects before it. For example, Pixelate followed by Glow produces glowing pixel blocks, while Glow followed by Pixelate produces blocky sampled glow.
- Select the desired layer in Layers.
- Open Effects / Masks and select the Effects tab.
- Choose Add Processing Effect.
- Select an effect.
- Adjust its parameters.
- Reorder it with Up and Down when necessary.
- Leave the effect enabled for preview and export.
To affect multiple existing layers together, add an Adjustment or Foreground FX layer above them and place the effects on that layer.
Every processing effect exposes Animate and Animation Speed:
- Animate enabled makes the effect respond to timeline time.
- Animation Speed controls the rate and can be negative to reverse motion.
- Animation Speed
0freezes time-dependent motion. - Animate disabled restores the effect's static baseline.
- The same time-specific evaluation is used for playback and animated export.
Seeded effects remain deterministic: the same project, seed, and timeline time produce the same pattern.
Retro Generators create their own image content as independent animated layers. Add one with + Retro Library or Library → Add Retro Generator Layer…, then edit it in Generator Properties.
New generators are created as Background layers with Preview and Export enabled. Their role can be changed to Content or Foreground, and processing effects can be added to the generated layer just like any other layer.
Every built-in generator has a Transparent Background option. It is off by default so existing presets retain their original full-frame appearance. Turn it on to reveal lower layers through the generator:
- Matrix Rain, Perspective Grid, Sine Wave, Text Scroller, Raster Bars, and Starfield clear their solid backdrop while retaining their generated marks.
- Palette Plasma converts its animated wave intensity into varying alpha, producing a translucent plasma field over lower content.
- Rotozoomer makes the Color B checker field transparent, leaving the Color A tiles above the lower layers.
- TV Static uses the generated noise activity as alpha, making its snow, interference, and bursts usable as overlays.
- Retrowave Drive removes its opaque sky, ground, and road fills while retaining the configured sun, reflection, road grid, and terrain wireframe.
Creates luminous character-grid rain inspired by classic digital-rain imagery. Multiple independently cycling drops illuminate fixed glyph cells rather than simply drawing unrelated text strings.
Useful for terminal backdrops, cyberpunk scenes, translucent overlays, and CP437/DOS-styled motion graphics.
Key controls include:
- Code Page 437 or another character set
- Installed font or loaded TTF/OTF/TTC font
- Cell size and drop density
- Fall speed, speed variation, and drops per column
- Rain slant and direction
- Glyph cycling speed
- Trail length and falloff
- Head, trail, and background colors
- Transparent background
- Glow, bloom, cursor brightness, and glints
- Dither magnitude, random seed, and loop duration
Included presets: Classic Green, Amber Terminal, and CP437 Blue.
Creates an animated neon grid that appears to travel toward or away from a vanishing point. It supports floor-grid, corridor, rectangular-tunnel, and radial-hyperspace layouts.
Useful for synthwave backgrounds, the moving tunnel behind foreground characters, wireframe travel sequences, and title screens.
Key controls include layout, vanishing-point position, ray count, depth-line count, travel speed, line width, colors, transparency, hue cycling, glow, and loop duration.
Included presets: Purple Corridor, Cyan Floor, and Radial Hyperspace.
Draws multiple luminous sine-wave ribbons with smoothly moving phase.
Useful for demoscene wave fields, oscilloscopes, abstract backgrounds, energy bands, and audio-themed visuals.
Key controls include wave count, amplitude, frequency, speed, thickness, glow, wave color, background color, transparent background, and loop duration.
Included presets: Magenta Ribbons and Ocean.
Moves custom text horizontally across the composition and can bend its baseline into a sine wave. It supports installed fonts and loaded TTF/OTF/TTC files.
Useful for cracktro-style greetings, credits, announcements, lower thirds, and CP437/DOS text animation.
Key controls include text, font, font size, direction, speed, baseline, wave amplitude, wave frequency, text color, background color, and loop duration. Transparent Background removes the scroller's solid backdrop.
Included preset: Classic Yellow.
Generates a classic multi-wave plasma field with cycling color.
Useful for Amiga-inspired backgrounds, psychedelic transitions, title-card fills, and color-rich blend layers.
Key controls include pattern scale, speed, saturation, brightness, and loop duration. Transparent Background maps plasma intensity to alpha so lower layers remain visible through the moving field.
Included presets: Electric and Soft Pastel.
Creates color-cycling horizontal bars with independently animated vertical motion, inspired by raster and copper-list effects on classic computers.
Useful for Amiga-style backgrounds, logo backdrops, color bands, and transition elements.
Key controls include bar count, bar height, motion range, speed, starting hue, background color, transparent background, and loop duration.
Included preset: Purple Copper.
Projects a deterministic looping starfield outward from a configurable center. Trails create the impression of forward travel or hyperspace.
Useful for space scenes, logo reveals, tunnel travel, and parallax-like background motion.
Key controls include star count, warp speed, trail length, center position, background color, transparent background, random seed, and loop duration.
Included presets: Hyperspace and Gentle Drift.
Creates an infinite checker texture that rotates and pulses in scale, based on a classic demoscene rotozoom effect.
Useful for energetic backgrounds, transitions, logo plates, and texture-mapped-looking motion.
Key controls include tile size, rotations per loop, zoom, zoom pulse, two checker colors, transparent background, and loop duration. With transparency enabled, Color B becomes the transparent checker field.
Included presets: Neon Checker and Monochrome.
Generates deterministic, seamlessly looping analog television noise as an independent layer. Variations include White Noise, Monochrome Snow, Color Static, Scanline Interference, and Static Bursts.
Use it for dead-channel screens, weak-signal backgrounds, transition frames, or transparent noise placed over lower layers.
Controls include variation, noise strength and density, grain size, opacity, burst frequency, static rate, background color, transparent background, random seed, and loop duration.
Included presets: Classic White Noise, Coarse Antenna Snow, Color Static, Scanline Interference, Intermittent Bursts, and Transparent Static Overlay.
Creates a seamlessly looping synthwave journey along a perspective road, beneath a striped gradient sun and between animated wireframe terrain. Depth lines move toward the viewer to create forward travel, while terrain rises, collapses, and can morph over the loop without exposing the road corridor.
Terrain variations include Rolling Hills, Jagged Mountains, Canyon, Symmetrical Valley, Sparse Peaks, and Flat Infinite Grid.
Controls include travel speed, horizon and vanishing point, camera height, road width and grid columns, depth spacing and line count, terrain width, height, roughness, mesh detail, morph amount and cycles, sun position, size and stripes, glow, reflection, colors, transparent background, terrain seed, and loop duration.
Included presets: Neon Sunset Drive, Jagged Night Highway, Neon Canyon, Symmetrical Valley, Morphing Dreamscape, Flat Infinite Grid, and Transparent Wireframe.
Generator manifests are safe, declarative JSON files. RetroStudio merges manifests from:
- The built-in
Libraryfolder. - The user's platform-specific
RetroStudio/Libraryfolder. - A
Libraryfolder beside the saved project. - Enabled plugin Library folders.
The JSON describes the generator's identity, controls, defaults, limits, presets, inputs, and built-in implementation entry point. Users can copy a manifest, give it a unique ID and name, change defaults, add presets, and reload the library without restarting RetroStudio.
Older or customized manifests using a supported built-in entry point receive the default-off Transparent Background control automatically if they omit it, so every generator displayed in the library has the same compositing option.
JSON alone does not implement a new renderer. A completely new algorithm needs
application code or a compatible future generator engine/plugin. See
LIBRARY.md and ../Library/generator.schema.json.
Processing effects transform an existing layer's pixels. They are added from the selected layer's Effects tab, not from the Retro Generator browser.
Adds a blurred luminous contribution around bright and colored pixels while preserving the original alpha channel. Radius controls spread and Strength controls intensity. Animation gently pulses the strength.
Use it for neon grids, glowing text, energy effects, and softened highlights.
Separates the red and blue channels horizontally to imitate lens fringing, analog misalignment, or digital RGB splitting. Offset controls the maximum separation. Animation moves the channels back and forth.
Use it for VHS styling, glitch accents, transitions, and distorted titles.
Adjusts Brightness, Contrast, Saturation, and Hue without changing the source. Animation continuously moves the hue while retaining the chosen base adjustments.
Use it for color correction, palette shifts, flashing color cycles, fades, and matching layers from different sources.
Softens detail using a configurable blur Radius. Animation pulses the radius to create breathing focus or dreamlike motion.
Use it for depth separation, bloom preparation, soft backgrounds, transitions, and obscuring fine detail.
Downsamples and enlarges the result with nearest-neighbor blocks. Pixel Size controls block size. Animation varies the block size.
Use it for low-resolution styling, censor blocks, transitions, mosaic effects, and deliberately chunky retro output.
Darkens repeated horizontal rows. Spacing controls the distance between lines, Thickness controls their height, and Intensity controls darkness. Animation scrolls the line pattern vertically.
Use it for CRT, arcade-monitor, television, terminal, and foreground-overlay styling.
Emulates an unstable analog television signal while retaining the source image. Modes include Weak Reception, Heavy Snow, Horizontal Sync, Rolling Bands, Color Interference, and Signal Dropouts.
Controls combine animated static with horizontal jitter and tearing, vertical roll, ghosting/double images, intermittent bursts, dropout bands, grain size, and scanline interference. Source alpha is preserved.
Apply it directly to one layer, or place it on a Foreground FX/Adjustment layer to distort the entire composite beneath it.
Draws transparent moving rain streaks over the layer. Controls include Density, Length, Angle, Width, Color, Opacity, and Seed. Animation moves streaks at varied deterministic speeds.
Use it directly on a layer or place it on a Foreground FX layer to cover the whole scene.
Draws transparent snow particles with varied sizes and speeds. Controls include Density, Size, Fall Speed, Drift, Color, Opacity, and Seed. Animation produces downward motion, lateral drift, and gentle sway.
Use it for weather, dust-like particles, festive scenes, and foreground depth.
Divides the image into horizontal slices and shifts selected slices sideways. Amount controls maximum displacement, Slice Height controls band size, Density controls how many bands move, and Seed controls the repeatable pattern. Animation chooses a new deterministic arrangement over time.
Use it for signal loss, datamosh-like motion, damaged screens, and abrupt digital transitions.
Introduces lossy JPEG artifacts and shifts selected eight-pixel block rows. Quality controls compression damage, Block Shift controls horizontal displacement, and Seed controls repeatability. Animation changes the block shift pattern over time.
Use it for corrupted-media styling, web-era artifacts, surveillance screens, and dirty transitions. The source alpha channel is preserved.
Reduces the image to a limited color depth. Bits controls the number of quantized colors and Monochrome optionally removes color. Animation oscillates the effective bit depth.
Use it for early-computer graphics, harsh palette reduction, banding, and animated bit-depth transitions.
Offsets every image row horizontally using a sine wave. Amplitude controls the distance, Frequency controls the number of waves, and Phase positions the distortion. Animation advances the phase continuously.
Use it for wavy logos, underwater distortion, heat shimmer, flag motion, and classic demoscene image bending.
Converts luminance into a monochrome dot screen. Cell Size controls dot resolution, Angle rotates the screen, and Foreground/Background select the two colors. Animation rotates the screen angle.
Use it for comic printing, newspaper texture, screen-print styling, and two-color poster designs.
Simulates overlapping cyan, magenta, yellow, and black print dots. Cell Size controls screen resolution and Dot Gain controls dot growth. Animation pulses the dot gain.
Use it for print misregistration aesthetics, pop-art color, magazine texture, and animated printing effects.
Runs a safe JSON operation graph rather than executable shader code. Path selects the JSON recipe and Intensity blends the result with the original. Supported operations are channel offset, scanlines, deterministic noise, vignette, and posterization.
Animation supplies timeline time to operations that support motion. Alpha is preserved.
Bundled recipes:
- CRT combines RGB channel separation, scanlines, and edge vignette.
- VHS combines stronger channel separation, animated noise, scanlines, and mild posterization.
Users can copy and edit these JSON files in Library/Shaders.
Masks control which pixels of a layer, group, or adjustment result remain visible. Masks are non-destructive, independently enabled, reorderable, and keyframable where their controls permit it. Multiple masks multiply together. All masks support inversion and feathering.
Uses image brightness as transparency. Threshold selects the brightness cutoff and Softness controls the transition around it.
Use it to retain highlights, remove dark backgrounds, or isolate luminous elements.
Removes pixels close to a chosen color. Tolerance controls the accepted color distance and Softness controls edge transition.
Use it for green-screen removal, solid-color background removal, and isolating sprite elements.
Converts existing alpha into a harder or softer visibility cutoff.
Use it to clean semitransparent edges, create hard sprite silhouettes, or reduce unwanted translucent pixels.
Creates a directional fade between normalized Start and End positions. Angle changes the direction.
Use it for fades, reveals, horizon blending, and gradual transitions between layers.
Creates a normalized rectangle or ellipse with configurable X, Y, Width, and Height.
Use it for spotlights, windows, vignettes, cropped regions, and local effects.
- Still image
- Animated GIF, APNG, and WebP
- Video through
ffmpegandffprobe - Solid color
- Text
- Character art
- Sprite sheet
- Imported SVG
- Editable native vector shapes
- Retro Generator
- Adjustment / Foreground FX
- Recursively nested groups
Root layers use Background, Content, or Foreground roles. RetroStudio maintains those bands from bottom to top. Layers can be moved, sent to the top or bottom of their band, grouped, ungrouped, duplicated, renamed, hidden from preview, excluded from export, or locked.
- Bottom-to-top RGBA compositing
- Normal, Multiply, Screen, and Add blend modes
- Per-layer and per-group opacity
- Position, X/Y scale, and rotation
- Independent Preview and Export switches
- Group offscreen compositing
- Layer, group, effect, mask, and processing-graph evaluation
Composition Settings provides exact Width/Height entry, a linked 1–800% Canvas Scale slider, percentage entry, and aspect-ratio locking.
Resize all layers with canvas proportionally scales source-layer geometry, positions, group positions, and transform keyframes. Generated and solid layers rerender at the requested resolution without double-scaling. Disable the option for an intentional canvas-only crop or expansion.
- Shared composition timeline
- Play, pause, and frame stepping
- Configurable frame rate and duration
- Layer start/end ranges
- Source-time offset and playback speed
- Once, Loop, and Ping-Pong playback
- Forward and reverse direction
- Work-area-limited playback and export
- Frame snapping and zoom
- Composition markers
- Draggable layer ranges, markers, and keyframes
- Numeric curve editor
- Hold, Linear, and Ease interpolation
- Keyframes for layer/group transforms and opacity
- Keyframes for effect, mask, generator, and character-art parameters
- Independent animation of superimposed layers
Each eligible layer can use Original, Dithering, or Character Art processing.
Implemented dithering choices:
- None (palette mapping only)
- Threshold
- Bayer 2×2
- Bayer 4×4
- Bayer 8×8
- Floyd–Steinberg
- Atkinson
- Custom Error Diffusion
Built-in palettes:
- Monochrome
- Game Boy
- CGA
- PICO-8
RetroStudio can extract a deterministic palette from an image, create persistent custom palettes, and define validated custom diffusion kernels.
- Full Code Page 437, including DOS graphical glyphs
- Installed Windows and Linux font discovery
- User-loaded TTF, OTF, and TTC files
- DOS extended-character fonts
- Automatic glyph-density ordering
- Custom glyph strings
- Glyph browser
- Font size and explicit/automatic cell dimensions
- Character depth and X/Y offsets
- Luminance range and inversion
- Single, source, or palette color modes
- Foreground/background colors and transparent background
- JSON presets
- UTF-8 character-grid text export
The 49 built-in sets are:
ASCII, Code Page 437, Block Elements, Braille, Geometric Shapes, Numbers, Symbols, Binary, Hexadecimal, Box Drawing, Playing Cards, Chess, Dice, Arrows, Math, Currency, Greek Upper, Greek Lower, Cyrillic Upper, Cyrillic Lower, Latin Accents, Runes, Hiragana, Katakana, Hangul, Stars, Circles, Squares, Triangles, Diamonds, Lines, Dense ASCII, Terminal, Shade Blocks, Half Blocks, Quadrants, Braille Sparse, Braille Dense, Punctuation, Brackets, Slashes, Music, Weather, Zodiac, Technical, Minimal 4, Minimal 8, Retro Computer, and Custom.
- Image loading and drag-and-drop
- Seekable timed layers for animated GIF, APNG, and WebP
- Video decoding through ffmpeg with source metadata
- Original-source and complete processed-composite views
- Fit and manual preview zoom
- Draft preview followed by refined preview
- Time-specific playback rendering from immutable sources
- Byte-bounded RGBA frame/render caches
- Stale-render protection
- Ordered bounded parallel PNG-sequence rendering
- NumPy/Pillow deterministic CPU rendering
- Optional backend capability boundary for future GPU providers
Long operations run on background workers. Loading, saving, relinking, scanning, batch work, and exports show a centered progress dialog plus the status-bar progress indicator. Cancellable work exposes Cancel and cleans up partial staging output safely.
- Editable
.retroprojectJSON documents - Referenced source media; original files remain unchanged
- Undo/Redo for layers, groups, effects, masks, generators, keyframes, processing controls, composition settings, and resize-all operations
- Coalesced history for rapid control changes
- Dirty-document indicator
- Background recovery autosave
- Recovery prompt after an interrupted session
- Save/discard/cancel protection
- Missing-media relinking
- Independent IDs when duplicating effects and masks
- Persistent effect/mask stack presets
- Record and apply style macros
Still and document output:
- PNG
- JPEG
- UTF-8 character grid
- Crisp traced SVG
- Path Editing SVG with individually editable horizontal runs
- Flattened PDF at a chosen DPI
Animated output:
- Animated GIF
- Animated PNG
- Animated WebP
- Numbered PNG sequence
- Silent H.264 MP4 through ffmpeg
- Silent VP9 WebM through ffmpeg
Preview and export share the same composition evaluation. Export respects layer/group Export switches, active ranges, work area, masks, effects, animation, and layer roles.
Exports use background processing, visible progress, cancellation where applicable, adjacent staging, and atomic destination replacement. Adjacent staging avoids cross-drive temporary-file replacement failures on Windows.
Production tools also include recursive folder batch processing, watch-folder processing, safe metadata preservation where supported, and command-line conversion/export workflows.
- Dockable, tabbed, independently scrollable panels
- Responsive smaller-window layouts and resettable workspace
- Dark and light themes
- Configurable keyboard shortcuts with conflict detection
- Generator library reloading
- User-, project-, and plugin-level generator manifests
- Safe declarative shader JSON
- Validated processing DAGs
- Plugin API 1.0 manifest discovery and enable/disable state
- Trusted Python automation console
- Optional output-only Lua subprocess execution
- Windows and Linux root launchers
USER_MANUAL.md— complete workflows and operating instructionsTUTORIAL.md— layered composition walkthroughREFERENCE.md— compact technical referenceLIBRARY.md— generator manifest format and locationsMANUAL_TEST_CHECKLIST.md— owner-run validation proceduresSCRIPTING.md— automation APIPLUGIN_API.md— plugin manifest API