<video> and <img> media directly in the preview. The same data-color-grading settings are used by the render pipeline, so the exported video should match the look you preview.
This is a lightweight media color tool for generated videos, uploaded footage, social variants, and agent-authored compositions. It is not a DaVinci Resolve, Premiere, ACES, or OCIO finishing pipeline.
What Is New
Studio labels
whites, blacks, and temperature as White Point, Black Point, and Warmth. Use the JSON keys shown in the data shape when authoring data-color-grading by hand or through an agent.
Support Matrix
How It Works
Color grading is stored on media elements asdata-color-grading:
index.html
Studio Workflow
Select a real<img> or <video> element in Studio to open the media tools:
- Presets shows every built-in starting point in a responsive preview grid. Hover to preview it on the selected media, click to apply it, or choose Original to return to the neutral preset.
- Adjust provides tonal and color correction.
- Effects groups configurable shader controls under Essentials, Retro & Glitch, Print, and Art.
- Finish provides vignette and grain.
- Custom LUT accepts a project-local 3D
.cubefile. - Overlays installs Camcorder HUD, Editorial Flash, Organic Light Leak, or Freeze-Frame Cutout from the existing Registry.
Color Grading is intentionally media-only. It applies to
<video> and <img> sources. Captions, text, divs, SVG, and UI graphics remain ungraded unless you render them into media first.Project-local media is the safest path. Remote media must be served with compatible CORS headers and should use
crossorigin="anonymous" when pixel processing is needed.Data Shape
enabled; the presence of data-color-grading implies that grading is active. All numeric controls are clamped by the runtime. The current color grading path is Rec.709/sRGB-oriented and assumes browser-decoded media frames.
chromaBleed is a bounded 0 to 1 treatment primitive that horizontally
softens chroma detail while preserving the center sample’s luma. It is useful
inside restrained creator-camera/camcorder treatments; it is not VHS, CRT, RGB
split, tracking noise, or a complete camera emulation.
Most effect amounts and settings are normalized from 0 to 1. Bloom supports
up to 3, bloom radius uses pixels, and enum controls use the integer choices
shown in Studio:
tapeDamageadds deterministic horizontal time-base instability, lower luma bandwidth, restrained ghosting, noise, sparse dropouts, and bottom-edge head switching.tapeTrackingadds bounded moving horizontal tracking tears,tapeNoisescales tape noise and row jitter, andtapeSpeedcontrols their deterministic motion (0.5is normal speed). These three subordinate controls do nothing withouttapeDamage. A complete analog-tape treatment may also use restrainedchromaBleed, scanlines, RGB separation, and rare row tears; none of these controls adds CRT curvature.filmArtifactsadds deterministic sparse dust and short scratches. Combine it with existing grain, vignette, color, and seek-safe GSAP gate weave for an 8mm treatment. It does not change the frame by itself when set to0.halftoneblends in a four-angle CMYK print screen.halftoneSizecontrols its resolution-aware dot-cell size from fine to coarse. The channel angles and edge response use fixed print-oriented defaults to keep authored output consistent across agents.twoInkPrintmaps warm midtones and deep/cool shadows to fixed original vermilion and teal spot screens with a dark overprint on warm paper.twoInkPrintSizecontrols its resolution-aware screen size. Do not combine it withhalftoneor describe it as a named commercial print process.asciiconverts the selected media to a procedural 5x7 glyph field.asciiSizecontrols cell size andasciiInvertswitches the light/dark ink polarity. It uses the first and last colors frompalette.ditherapplies a temporally stable ordered 4x4 Bayer dither.ditherSizecontrols cell size and allpalettecolors participate in the result. This is ordered dithering, not Floyd-Steinberg or another sequential error-diffusion algorithm.bloomextracts bright pixels and runs a bounded half-resolution separable blur.bloomRadiuscontrols its radius.monoScreenprovides configurable mono print shapes, angle, spread, invert, and palette controls.scanlines,crtCurvature, andchromaticAberrationprovide display geometry and channel treatments with their related settings.digitalGlitchprovides deterministic line tears, blocks, displacement, selective pixelation, channel split, opacity, and speed controls.engraving,crosshatch, andkuwaharaprovide stylized art treatments with their calibrated settings. Kuwahara uses bounded half-float intermediate targets when the browser supports them and otherwise reports unavailable.
palette accepts two to six exact #RRGGBB colors in authored order. Use
dark-to-light order for normal luminance mapping; intentionally reverse the
array for an inverted result. The runtime validates and lowercases colors but
does not reorder them. ASCII, dither, mono screen, engraving, and crosshatch use
it; a palette or subordinate setting alone does not allocate an effect. Omit it
for the family default.
When effects are combined, HyperFrames evaluates them in one fixed,
deterministic order: source framing and multipass blur/Kuwahara preparation;
chromatic and digital glitch; primary color grading and LUT blended by global
intensity; grain and film
artifacts; mono/engraving/crosshatch/halftone/two-ink/dither/ASCII; bloom,
scanlines, vignette, and CRT display masking; then before/after comparison.
Effects cannot currently be reordered. The fixed
pipeline keeps Studio, playback, seeking, and final render behavior
predictable.
Studio exposes these controls in the selected media element’s Effects
accordion. Agents should choose one primary intent through the media-use
skill, then either seed from a source-aware treatment recipe or inspect the
canonical toolbox and assemble a bespoke combination:
--all only for exhaustive tooling. Recipes are tested shortcuts, not the
complete allowed surface. Persist the final combined payload with the same
hyperframes media-treatment command; unknown keys are rejected before the
composition is changed.
Custom LUTs
HyperFrames supports project-local 3D.cube LUT files:
index.html
.cube LUTs when users already have a look from another editor or camera workflow.
- HyperFrames currently supports 3D
.cubeLUTs for this path. - 3D cube LUTs up to
LUT_3D_SIZE 64are supported. - 1D
.cubeLUTs and mixed 1D+3D LUT files are not supported yet. - Supported headers include common
DOMAIN_MIN/DOMAIN_MAXand DaVinci/IRIDAS-styleLUT_3D_INPUT_RANGE. - LUTs are not universal. A LUT looks correct only when the source footage roughly matches the LUT’s expected input color space.
- Rec.709 creative LUTs are the safest fit today.
- LOG/camera conversion LUTs can be used, but HyperFrames does not yet manage camera color profiles for you.
Render Behavior
Color Grading is part of the media runtime, so render uses the same settings as Studio preview. During render, HyperFrames injects exact video frames and asks the color-grading runtime to redraw before capture. For 4K output, use the existing 4K Rendering workflow. Color Grading can run at 4K when the composition/render surface is 4K, but a 1080p source video does not become sharper just because the final render is 4K. Performance follows the total number of treated pixels and the selected render lane, not only the number of media elements. Several tiled videos can be cheaper than several overlapping full-frame videos. Blur, Bloom, and Kuwahara use multipass rendering. When more than two full-frame multipass-treated media elements are visible together, verify continuous playback on the target machine and simplify or pre-render the stack if frames drop. HyperFrames does not impose a universal hard cap because GPU and decoder capacity varies by device. For HDR output, use the existing HDR Rendering workflow. Color Grading currently warns on detected HDR media, but the grading controls themselves are not HDR-aware. When grading a video, animate opacity on a wrapper element instead of directly on the<video> element. The runtime hides the native media and draws the graded result through a sibling canvas, so wrapper opacity preserves preview/render parity.
What Belongs Where
Agent-Friendly Examples
For AI agents, keep the instruction declarative:index.html
Related Guides
Remove Background
Create transparent video/image cutouts for presenter and product overlays.
Rendering
Render transparent overlays and final MP4/WebM/MOV outputs.
HDR Rendering
Render HDR10 outputs when your project uses HDR video or image sources.
4K Rendering
Render at 4K and understand what supersampling does and does not improve.