DamilolaDami / DamilolaDami/EditOS

Manual color grading panel — wheels, curves, HSL

Open
#4 0 comments 0 reactions 0 assignees View on GitHub
enhancement help wanted
Dominant language
Swift
Stars
2
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Why this matters

Filters today come from `FilterCatalog` presets (vibrance, photoEffectNoir, etc.). For real colour work, users need manual control: lift/gamma/gain wheels, RGB curves, hue-saturation-luminance qualifiers.

## Scope

V1 deliverable: a 'Color' inspector section that exposes:

- Three colour wheels (Lift / Gamma / Gain) with hue + lift offset.
- Per-channel RGB curve editor.
- HSL sliders for hue, saturation, luminance — per primary if possible.
- Reset-to-default and copy/paste-grade between clips.

The grade is stored on the clip and applied in the CIFilter handler the same way preset filters are today.

### Acceptance criteria

- Adjustments are live in preview (smooth 30+fps scrub).
- Export bakes the grade in.
- Save/load round-trips correctly through SwiftData.
- Tied gracefully with the existing preset filter system (a clip can have *either* a preset *or* a custom grade — or both).

## Pointers

- `EditOS/Features/Editor/Library/FilterLibrary.swift` — current preset UI
- `EditOS/Core/Engine/CompositionBuilder.swift` — `FilteredRange` handling in `buildVideoComposition`
- Use `CIColorPolynomial`, `CIToneCurve`, `CIHueAdjust`, `CIColorControls` from CoreImage

## Difficulty

🔴 Advanced — significant UI work plus careful CI filter chaining for performance.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with EditOS/Features/Editor/Library/FilterLibrary.swift for the existing preset UI and EditOS/Core/Engine/CompositionBuilder.swift for FilteredRange handling in buildVideoComposition. Review the listed CoreImage filters and define the grade’s SwiftData storage and chaining behavior; done means live 30+fps preview, baked export, round-trip persistence, reset and copy/paste, and preset compatibility.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
mobile-dev, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.