3 ms·
Show HN: I made a web app for color grading and film emulation
TLDR: I’m a solo dev with backgrounds in art/photography and made a web app (PWA) for film emulation and color grading.
Hey everyone!
I'm excited to introduce you to a passion project that's been keeping me busy for nearly a year - a color grading and film emulation web app called Color.io (https://app.color.io https://app.color.io). It's desktop-only for the moment but merging the new engine with my other, mobile first app (match.color.io), is in the pipeline.
Color.io is the result of my long standing frustration with how color tools behave in most editing and color grading software, especially on the photographic end. It’s much easier to create completely unnatural looking colors than it is to truly enhance an image in a subtle and film-like way. Most apps work around their engines’ color transform shortcomings by exposing some kind of profile or 3D LUT interface that allows for arbitrary 3D color mappings to be applied to images. The problem with profiles and LUTs however is that they’re a black box and offer limited creative control.
My app is meant to act as a middle man in this color process. I wrote a custom color engine on top of ACES (hand ported to WebGL) that uses custom color models and transform operations that are much more suitable for creative color manipulation than cone models like HSL. The engine is controlled by my library of interface tools like custom spline interpolators, color wheels, 2D draggables and more. I also ported a custom libRAW build to web assembly for a logarithmic raw development workflow.
The project is still very much in its early stages, and the response since the soft launch has been overwhelmingly positive. I'm keen on using this momentum to make the app better. So, your feedback would be hugely appreciated! Tell me about the features you'd like to see, the ones you're loving, and anything you think needs improvement (all code, design, marketing is a solo gig so I'm sure there's lots to do!)
Find me on Twitter (@MON0KEE, https://twitter.com/MON0KEE https://twitter.com/MON0KEE) or more frequently on Instagram (@monokee, https://instagram.com/monokee https://instagram.com/monokee). I'd love to hear from you!
- dmbche 3y agoThis is very impressive! If I could recommend something, it would be to talk about how this solves the frustrations you had with usual tool and how they are solved here. At first glance I assumed it was just a custom bank of luts, but it's actually a novel UI to interact with color. Great job! Edit: It took me months to figure out how I like grading and coloring in Resolve and Lightroom, and a tool like this makes understanding what's happening and making what you want seemingly easier.
- monokee 3y agoThank you!! I've been trying to find the right balance between using technical lingo and not scaring novice users away. I think the absolute best way to learn how it solves these frustrations is by seeing it work on real images. I go into more technical detail in the user guide at https://color.io/user-guide/get-started https://color.io/user-guide/get-started, which includes both explanations of how the tools work and how the approach is fundamentally different to most other tools. For example, here's an excerpt from "Shadow and Highlight Scattering": Light scattering plays a significant role in determining the colors that we perceive in the physical world. It influences the way light interacts with different materials and environments, and ultimately affects the way that we see colors and their intensity, saturation, and hue. The specific physical effect responsible for ambient color tints in the physical world is a combination of the Tyndall Effect and Rayleigh Scattering after which the response behaviour of the scattering wheels are modelled. Use the shadow scattering wheel to add ambient color to the shadows of an image. Unlike traditional color wheels, scattering holds on to the naturally occurring shadow colors in an image longer and tints dark pixels in a way that is consistent with light behaviour in the physical world.