linebender / linebender/color

A scattering of color concepts we're investigating for Graphite

Open
#4 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
110
Forks
14
Avg merge
16h 45m
Merged PRs (30d)
1

Description

Just pasting this here so it's something that can be referenced more publicly. These are a number of loosely organized concepts we've been brainstorming for potential future use with Graphite's use of color. @TrueDoctor was specifically interested in investigating how far it might be possible to encode some or all of these using Rust's traits system.

- Allows None
- Allows transparency
- Alpha association
- Albedo + Translucency (straight)
- Emission + Occlusion (premult)
- Gamma curve
- Color model
- Color space (primaries incl. white point)
- SDR or HDR
- HDR luminance
- Number of channels
- Bit depth per channel
- Luminance calculation method
- Additive or subtractive (RGB vs CMYK)
- Transfer function (PQ/HLG)?
- Chroma subsampling?
- Spectral?
- PBR material channels (albedo, emission, roughness, metalness, normal map)?
- Whether it's a (0 to 1) fraction of reflectance (used for PBR)

Separately, gradients should be considered for how they interpolate and how mapping operations can be applied to them.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by reviewing the repository structure and existing color and gradient APIs, then determine which of the listed color concepts are in scope and what behavior would define completion.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.