DamilolaDami / DamilolaDami/EditOS
Manual color grading panel — wheels, curves, HSL
- 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