Two Practices, One Apparatus: Playing Against a Program That Writes Programs will be presented at the AI in Art Practices and Research Conference, UNATC, Bucharest, 18–20 November 2026.
Lab Notes
RSSA dated record of releases, papers, exhibitions, and research milestones at Qídé Studio.
Updated 8 October 2026. Algorithmic Forms v1.4.2 moves the experiment to the shared tool frame with a docked control panel and adds social-format export presets (1:1, 9:16, 16:9 at platform sizes) for PNG and WebM. Animation timing now runs on wall-clock time, so motion and exports play at the intended speed on high-refresh displays.
v1.4.2 · CC BY 4.0 · View Experiment
Updated 8 October 2026. 7YP3 F13LD v0.3.0 adds two effects: Flip Wave (scaleX mirror oscillation) and Turbulence (per-glyph drift on integer frequencies, which feels irregular but closes the loop exactly). v0.3.1 fixes font replacement on repeated uploads and refresh-rate-dependent GIF speed, guards recording, and caches glyph measurement.
v0.3.1 · prototype October 2026 · CC BY 4.0 · View Web Tool
Updated 7 October 2026. C0SM1C SCR1P7 0x6E v1.5.0 makes the studio’s Nudica Mono the default typeface (custom font upload unchanged) and adds social-format export presets (1:1, 9:16, 16:9 at platform sizes) across PNG, PNG sequence, GIF, and WebM.
v1.5.0 · CC BY 4.0 · View Web Tool
Published today as a prototype. 7YP3 F13LD is a 2D kinetic-typography composer. A single word is animated per glyph with staggered wave effects (tracking, rotation, shear, bounce, scale, fade, color), quantized to an exact loop period so exports close seamlessly; a grid mode tiles the word up to 4×4. Nudica Mono is the default typeface, with custom font upload (.ttf, .otf). Exports are loop-perfect WebM video, GIF, and PNG with optional transparent background.
v0.2.0 · prototype October 2026 · CC BY 4.0 · View Web Tool
Updated 6 October 2026. C0SM1C SCR1P7 0x6E v1.4.2 lays text out with the font’s own metrics: advance widths plus pair kerning, replacing the fixed per-glyph gap that ignored kerning tables. v1.4.0 added transparent-background export for PNG, PNG sequence, and GIF (WebM keeps the background color), and the page moved to the studio’s shared tool frame.
v1.4.2 · CC BY 4.0 · View Web Tool
Updated 5 October 2026. Neon Noir v1.4.0 adds aspect-ratio cropping (1:1, 3:2, 2:3, 4:5, 16:9) with drag positioning, so the canvas shows exactly what will export. Downloads now render at the image’s native resolution, cropped dimensions included, with an export-size readout and a 45-megapixel guard. The page also adopts the shared tool frame: header with name and version, docked controls, license in the footer.
v1.4.0 · CC BY 4.0 · View Web Tool
Updated 5 October 2026. Color lab v2.2.0 adds pin-and-build palettes. Clicking a slice of the wheel pins its hue and keeps the selected harmony set on screen, while hovering elsewhere shows a subdued preview. The export button now targets the pinned palette – base color first, each swatch tagged by role – in JSON, ASE, and ACO. With nothing pinned, the full-wheel export is unchanged.
v2.2.0 · CC BY 4.0 · View Web Tool
As of September 2026, (Image) Color Analysis Tool has passed 6,000 downloads on PyPI. The Python library and CLI extract color distributions and harmonic relationships from images: deterministic k-means++ palette extraction in OKLab, harmonies by OKLCh hue rotation with gamut mapping, and ICC-based CMYK conversion through the FOGRA39 profile. Every report carries WCAG 2.2 contrast ratios and APCA scores.
v2.0.1 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.17848058
Released 10 September 2026. Renoir v3.9.0 makes the perceptual
distance metric a choice rather than a constant. Palette Earth
Mover’s Distance and the Color Complexity Index now accept
distance_metric="cie2000" (the default, unchanged
behavior), "oklab", or "cam16". The
Oklab strategy measures Euclidean distance in the space of
Ottosson (2020) with a pure-NumPy transform; the cam16
strategy implements CAM16-UCS (Li et al., 2017) through the
optional renoir-wikiart[cam16] extra. CCI
normalizes perceptual spread by each metric’s black-to-white
distance, so scores remain comparable across backends.
Notebook 18 compares PEMD and CCI under CIEDE2000 and Oklab
side by side on art-historical palettes.
Color naming gains match confidence.
ColorNamer.name(..., return_metadata=True) and
translate() now report a tier (exact, high,
medium, low, or none, banded by CIEDE2000 distance), a 0–100
score, the ΔE of the match, and an ambiguity flag that names
the runner-up on a near-tie. A plain-language note,
PIGMENT_MATCH_GUIDANCE, states that pigment names
are colorimetric approximations rather than material
guarantees. The test suite grows from 326 to 395 tests, adding
Hypothesis property tests for color invariants, and CI runs
the full suite with the cam16 extra installed on every push.
v3.9.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.17355170
Released 7 September 2026. Color Constancy Enhancement v1.3.2
is a security-hardening and reliability patch. The OpenCV floor
rises to close CVE-2023-4863,
load_image() rejects decoded images above 100
megapixels, and benchmark CSV reports neutralize spreadsheet
formula metacharacters in dataset filenames. CLI edge cases are
fixed throughout: --msrcr now works as a real
boolean pair, bracketed --param sequences no
longer truncate at the first comma, and preset files can set
msrcr to false. A hash-pinned
constraints.txt supports reproducible installs,
and CI audits dependencies for known vulnerabilities on every
push. Python 3.10 is now the minimum supported version; pip
keeps serving v1.3.1 on Python 3.9.
v1.3.2 · MIT · GitHub · DOI: 10.5281/zenodo.21278447
Released 4 September 2026. Color Constancy Enhancement v1.3.1
restores MSRCR color restoration to the canonical
parameterization of Jobson, Rahman & Woodell (1997): inner
gain cr_alpha (125.0) is now distinct from outer
gain cr_beta (46.0), with display gain and offset
applied on top, and the new --cr-alpha and
--cr-beta flags expose both from the CLI. MSRCR
output changes as a result. SSIM now uses the canonical 11×11
Gaussian window of Wang et al. (2004), the benchmark harness
scores only illuminant estimators, and the combined pipeline
simplifies to Gray World followed by MSRCR after the
intermediate Von Kries stage showed a negligible effect.
v1.3.1 · MIT · GitHub · DOI: 10.5281/zenodo.21278447
Released 3 September 2026. Chiaroscuro Forge v2.2.0 is a
maintenance release that corrects two defects in contrast
enhancement and perceptual metrics. CLAHE on color images
raised an error with scikit-image 0.26, and adaptive gamma
never triggered on color input; the contrast stage now runs the
LAB lightness channel in [0, 1] and rescales afterward. LPIPS
similarity fed [0, 1] tensors to networks calibrated on
[-1, 1], so inputs are now scaled to the published calibration
point and LPIPS values shift slightly from v2.1.0.
QUALITY_WEIGHTS is deprecated ahead of removal in
v3.0.0, and the test suite grows to 570 tests with the first
color-image coverage of the document and medical presets.
v2.2.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.18200571
Released 2 September 2026. (Image) Color Analysis Tool v2.0.1
fixes a hue shift in palette colors whose cluster average falls
outside the sRGB gamut: centroids now reduce chroma in OKLCh
until they fit, the same CSS Color 4 gamut mapping the harmony
engine uses, so a reported color keeps the hue and lightness of
its cluster. The color_spaces module also gains a
direct oklab_to_oklch conversion, exact for
out-of-gamut inputs. Upgrading from v2.0.0 requires no action.
v2.0.1 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.17848058
Released 1 September 2026. (Image) Color Analysis Tool v2.0.0
moves the algorithmic core to perceptually uniform color
science. Palette extraction defaults to deterministic k-means++
clustering in OKLab, harmonies are computed by OKLCh hue
rotation with hue-preserving gamut mapping, CMYK values are
ICC-based through the bundled FOGRA39 profile, and every report
can carry WCAG 2.2 contrast ratios and APCA values. Two
breaking changes lead the release:
ColorInfo.frequency is renamed to
weight, and --format css now emits a
Tailwind v4 @theme file in place of the v3
snippet. MIGRATION.md walks through every change, and the v1
pipelines remain available through
--extractor legacy,
--harmony-engine hsv_legacy, and
--cmyk-method device_naive.
v2.0.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.17848058
Released 25 August 2026. Siss v1.2.0 adds still-image frame
extraction from video inputs: --extract-frame
saves a single frame, selected by index or as
first, middle, or
last, without applying any effect. The flag
requires an image output path and cannot be combined with
--effect or --preview-frame. The
bundled LLM prompt now documents
symbol_size correctly as the sampling grid pitch
rather than the pixel size of the largest symbol.
v1.2.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.21961221
As of August 2026, Chiaroscuro Forge has passed 5,000 downloads on PyPI. The Python image-enhancement tool analyzes each image’s characteristics and applies processing parameters automatically, across LAB, RGB, and ratio-based color modes, with SSIM, PSNR, MS-SSIM, CIEDE2000, and optional LPIPS quality metrics.
v2.1.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.18200571
Released 18 August 2026. Chiaroscuro Forge v2.1.0 adds an opt-in
linear-light processing path: with the
linear_light config flag or the
--linear CLI option, the pipeline converts sRGB
input to linear-light values before the subsequent stages, and a
tone-mapping stage maps the processed values back to sRGB
output. The mode stays off by default, so the gamma-encoded
workflow is unchanged. MS-SSIM also gains a compatibility mode
that reproduces the historical per-scale averaging behavior
alongside the current multiscale implementation.
v2.1.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.18200571
Released 16 August 2026. Siss v1.1.0 adds single-frame previews
for rapid iteration.
--preview-frame middle or a numeric index processes
one frame from a video input through the same duotone and
halftone processors as a full render, and
--preview-output saves it as a still image; when
frame seeking proves unreliable for a given codec, the reader
falls back to a sequential grab-loop.
v1.1.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.21961221
Released 16 August 2026. Chiaroscuro Forge v2.0.1 is a packaging release: it updates the release metadata for PyPI publishing compatibility and the CI publication metadata for the current GitHub Actions platform. No user-facing changes.
v2.0.1 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.18200571
Updated 12 August 2026. 5YN7H 0x1F v1.4.0 derives color from the music itself: spectral centroid sets the base hue, the beat-tracked tempo scales hue drift, and band energy sets saturation, with silence falling back to near-white. A microphone toggle in the transport row turns the visualizer into a live instrument for voice, instruments, and room sound.
The mode set consolidates from nine overlapping entries to seven distinct ones; the former Color Pulse and Pulsation modes are now composable modifiers (Hue Drift and Bass Pulse) that layer onto any of them, and the default mode is renamed Drift. Text accepts up to three lines with solid leading, and editing morphs the particle cloud between glyph shapes. A Fill Interior option samples dots from the glyph body as well as the outline. Four presets apply tuned configurations in one click, a Copy Link button shares the full state through the URL hash, and the control panel shows only the controls that affect the active mode.
The build changes as well: p5 and p5.sound are vendored locally, removing the CDN dependency; the iframe upload bridge is gone; page analytics no longer double-count; and recording gains a vp9 codec with a vp8 fallback.
v1.4.0 · CC BY 4.0 · View Web Tool
Released 5 August 2026. ColorCast v2.6.0 introduces
perceptually uniform appearance spaces for ranking CVD
deficiency severity: ICtCp (ITU-R BT.2100, HDR-aware) and
CIELAB, which now defaults to CIEDE2000. Spaces are created by
name through
make_appearance_space("ictcp") and passed to
get_error_map() or
compute_dashboard() for appearance-based ΔE. A new
colorcast dashboard CLI command generates
full-resolution accessibility reports from the terminal, and
the GUI gains a ΔE metric dropdown and a minimal dark theme in
custom QSS. The test suite grows to 381 passing tests. No
breaking changes.
v2.6.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.18550038
Released 3 August 2026. The Python image-enhancement tool
reaches v2.0.0 with a unified
ProcessingConfig dataclass shared across the CLI,
API, presets, and batch runner. Quality assessment gains two
perceptual metrics: CIEDE2000 color difference, and LPIPS
similarity through the optional
chiaroscuro-forge[perceptual] extra. The bilateral
denoising mode now applies true edge-preserving bilateral
filtering. Tiling accumulates output in float32 to avoid
truncation artifacts in overlapping regions, and RGBA images no
longer crash color conversion.
Two breaking changes: Python 3.9 is now the minimum supported
version, and Pillow becomes a required dependency. API
deployments must also provision a key through the
CHIAROSCURO_API_KEY environment variable, since no
default key ships in the source. The same security pass
restricts CORS to localhost origins, adds response security
headers, hardens bootstrap authorization with timing-safe
comparison, sanitizes error messages, and rejects oversized
uploads before memory exhaustion. CI runs black, flake8, and
pip-audit across Python 3.9 to 3.13.
v2.0.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.18200571
Accepted July 2026. Distinctness-First Palette Extraction for Accessible Design Systems will be presented at APSIPA ASC 2026 (Track IVM) in Bangkok, 9–12 November 2026. The paper introduces Distinctness-First Palette Selection (DSP): a constrained greedy algorithm that selects a palette of N colors by maximizing the minimum pairwise CIEDE2000 distance, subject to a hard separation threshold and a post-selection WCAG AA contrast check. A heuristic assigns each color a design-token role (Surface, On-Surface, Primary, Secondary, Accent). Evaluated on 75 held-out COCO photographs, DSP reaches a mean minimum CIEDE2000 distance of 24.9 ± 5.6 against 14.1 ± 4.9 (k-Means Lab), 12.4 ± 3.8 (k-Means RGB), and 7.2 ± 3.9 (Median Cut), all p < 0.001, Wilcoxon signed-rank. DSP is also the default extraction method in Véridique, the studio’s CVD-tested palette checker.
v1.0.0 · MIT · GitHub · DOI: 10.5281/zenodo.20092215
Véridique v1.0.0 · CC BY 4.0 · View Web Tool
Released 2 August 2026. ColorCast v2.5.0 adds a CVD
Accessibility Dashboard that compares all three
color-vision-deficiency simulations side by side.
compute_dashboard() runs the protanopia,
deuteranopia, and tritanopia simulations and their error maps in
parallel; generate_dashboard_report() renders the
result as a single report. A correctness fix addresses
Daltonization at zero intensity, which returned the simulated
image instead of the original across all three deficiency types.
import colorcast no longer requires matplotlib, CLI
tracebacks are opt-in via --verbose, and PyPI
publishing moves to a Trusted Publisher (OIDC) workflow with CI
across Python 3.10 to 3.13. Coverage stands at 75%, with 361
tests passing. No breaking changes.
v2.5.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.18550038
Released 1 August 2026. Siss reaches v1.0.0. A constraints file,
loaded with --constraints and written with
--dump-constraints, records and reapplies full
parameter sets; CLI flags override the file, the file overrides
the palette, and the palette overrides the built-in defaults.
The halftone effect gains a ring symbol (--symbol_type ring) and a luminance-curve gamma for non-linear symbol-size
mapping. --loss-map PATH exports per-cell luminance
divergence as an image. Split-view output now renders each half
under a different grammar through the
--split-alt-* flags, including a half-half mode at
original dimensions. The Pillow requirement is raised to close
three CVEs, output paths are guarded against traversal, and
print() is replaced by logging throughout.
v1.0.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.21961221
Released 29 July 2026. Renoir v3.8.0 adds a command-line
interface with four subcommands (artist,
extract, name, prompt),
installed via pip install renoir-wikiart[cli]. A
new DSP extraction method selects palettes that are perceptually
distinct from each other while guaranteeing at least one WCAG AA
contrast pair, through
ColorExtractor.extract_dominant_colors(method="dsp")
or --method dsp on the CLI. Notebook and pipeline
use gets quieter: setup_notebook_logging() attaches
a console handler to the renoir logger, and
progress_callback parameters accept tqdm or custom
progress bars. Fixes correct the sRGB linearization threshold in
calculate_contrast_ratio to the IEC 61966-2-1
standard value, make matplotlib genuinely optional, and validate
save_path parameters against path traversal. The
test suite now runs 326 tests.
v3.7.0, released a day earlier, hardened the API around empty
inputs and multi-figure saving, and raised test coverage from
85% to 90%. One breaking change:
ColorNamer.name() now raises
ValueError instead of
RuntimeError when no color match is found.
v3.8.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.17355170
Released 28 July 2026. Siss v0.8.0 adds
--split-view, which exports a before/after
comparison in a single file, and
--export-palette-preview, which renders an
A4-landscape contact sheet of every built-in and custom palette
with hex and RGB values. New --verbose and
--quiet flags control the log level, and a
py.typed marker lets mypy and pyright validate code
that imports siss. Security boundaries are hardened
throughout: opencv-python>=4.10 excludes two
known CVEs, palette files are size-checked and read as UTF-8,
tracebacks no longer leak at default verbosity, and pip-audit
runs as a blocking CI step.
Since v0.5.1 the tool has also gained audio passthrough for
video output via ffmpeg (v0.7.0) and a proper
siss package layout (v0.6.0). Two breaking changes
arrived with v0.7.2: symbol_type,
grid_type, and no_audio are now
keyword-only arguments in the effect functions, and Python 3.9
is the minimum supported version.
v0.8.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.21961221
Released 27 July 2026. ColorCast v2.4.2 adds 148 tests across
six files, raising coverage from 51% to 69%, and fixes the
correctness bugs the new tests exposed. The GPU branch of
mean/standard-deviation transfer now honors the [0, 1] float
contract; it previously produced silently wrong output when CuPy
was available. Selective regional transfer replaces hard binary
blending masks with smoothstep-feathered masks, removing visible
seams at shadow and highlight thresholds.
StyleTransferCache is now thread-safe, and
validate_file_path uses
Path.relative_to for base-directory containment.
v2.4.2 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.18550038
Released 26 July 2026. ColorCast v2.4.0 corrects the
MethodComparison module:
find_best_method no longer returns the worst method
for distance metrics, because metric direction is now inferred
automatically;
compute_histogram_distance implements the
documented Earth Mover's Distance in place of L1 distance; and
baseline rows are excluded from rankings. Image loading now
validates file magic numbers and array values through a single
authoritative validators module, and the method registry gains
an optional LRU-cached transfer path,
transfer_cached.
v2.4.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.18550038
Released 23 July 2026. ColorCast v2.3.0 registers the three
Daltonizer methods (daltonize_protanopia,
daltonize_deuteranopia,
daltonize_tritanopia) in the transfer-method
registry, wrapping
colorcast.analysis.daltonization.daltonize. All 15
GUI modes are now registered, and the Daltonizers are selectable
through the CLI and API as well as the GUI. The GUI dispatches
every method through registry.get_method(); the
14-branch if-elif chain in apply_style_transfer is
removed, and the intensity-slider label and style-image controls
derive from method metadata (requires_reference,
slider_label) instead of hardcoded category sets.
v2.3.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.18550038
Released 22 July 2026. ColorCast v2.2.0 routes all CLI and GUI
dispatch through a single transfer-method registry, so Lab color
transfer (Reinhard) and the three color-vision-deficiency
simulators no longer fall back silently to histogram matching.
The style image is now optional for the simulator methods, Lab
color transfer is selectable in the GUI dropdown for the first
time, and RGBA input is composited onto a white background
rather than stripped of its alpha channel. The release also
fixes a cache-eviction bug in
StyleTransferCache and makes batch processing
thread-safe.
v2.2.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.18550038
Released 21 July 2026. Véridique is a palette checker that scores every color pair as it appears under color vision deficiency. Pairs are simulated under protanopia and deuteranopia (Viénot et al., 1999) and tritanopia (Brettel et al., 1997), then judged by their worst-case dE in Oklab or CIEDE2000; failing pairs receive proposed repairs through lightness separation or hue rotation. Palette extraction from images uses DSP (Semoglou, 2026) with WCAG AA enforcement and design-token role assignment, and a registry of named, citable conformance checks audits the result. Simulation constants are verified against the DaltonLens reference implementation.
v1.0.0 · CC BY 4.0 · View Web Tool
Released 20 July 2026. Siss v0.5.1 rewrites the halftone
renderer for speed, with no change to output: per-cell Python
loops are replaced by vectorized NumPy operations, the luminance
grid is computed once from an integral image, and same-sized
symbols are drawn in bulk. Rendering a 1920×1080 frame at the
default symbol size drops from about 197 ms to about 9 ms,
roughly 20× faster, pixel-identical to v0.5.0. The release also
fixes a resource leak in
validate_codec, which previously leaked its probe
VideoWriter when initialization failed.
v0.5.1 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.21961221
Released 14 July 2026. ColorCast v2.1.1 adds color-vision-deficiency simulation and a Daltonization pipeline to the PyQt5 color- and style-transfer tool. The simulator covers protanopia, deuteranopia, and tritanopia; the Daltonization pipeline recolors images to improve color discrimination for observers with color vision deficiency. Histogram matching, mean/standard-deviation transfer, LUT-based curves, and selective regional transfer across shadows, midtones, and highlights remain in place.
v2.1.1 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.18550038
Released 12 July 2026. Siss v0.5.0 adds still-image input and
output to the Python command-line tool for duotone and halftone
effects. Passing an image extension as the output path
dispatches to cv2.imread /
cv2.imwrite and reuses the existing per-frame
duotone and halftone closures, so the same color inputs,
palettes, and symbol settings work on single frames and video.
v0.5.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.21961221
This week Siss crossed 5,000 downloads on PyPI. The Python command-line tool applies duotone and halftone effects to video files. Duotone maps per-pixel luminance to a two-color blend; halftone renders plus, asterisk, slash, or dot symbols at luminance-proportional sizes over a square or hex-offset grid.
v0.4.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.21961221
Updated 10 July 2026. 5YN7H 0x1F v1.2.0 moves to explicit, controllable audio-to-visual mappings and modularizes the codebase under a Vite build pipeline. The canvas now renders the default text on first load instead of waiting for the first parameter change, and the Font Size slider sets the rendered size directly rather than clamping it. Typed text centers around the fixed control panel instead of behind it. A new Cohesion parameter pulls particles back toward their original glyph position, keeping text recognizable under sustained audio; Gravity mode is removed, since it collapsed the word to the bottom of the canvas regardless of audio. Color Pulse no longer cycles hue continuously in silence, a bug traced to a mapping function that read silence as a maximum shift.
v1.2.0 · CC BY 4.0 · View Web Tool
Released 10 July 2026. Siss v0.4.0 removes the manual
--use-codec-fix flag and makes codec selection
automatic through create_video_writer. Duotone and
halftone effects now share a single
process_video_frames helper for frame I/O and
progress reporting. The release adds end-to-end integration
tests against synthetic gradient videos, moves development
dependencies to requirements-dev.txt, and makes
src/__init__.py the single source of truth for the
version string.
v0.4.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.21961221
Released 9 July 2026. Renoir v3.6.0 adds
ArtistAnalyzer.load_dataset() and
ArtistAnalyzer.list_artists() for direct access to
the WikiArt dataset. Plotting methods in
ColorVisualizer and ArtistAnalyzer now
return a matplotlib.figure.Figure and accept an
optional show parameter. ColorNamer is
exported at the top-level renoir package, and
ColorAnalyzer.color_provenance_score() is added as
the American-spelling alias for
colour_provenance_score().
v3.6.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.17355170
Released 9 July 2026. Color Constancy Enhancement v1.3.0 adds Selective Midtone Enhancement (SME), a perceptually-guided adaptive enhancer that applies IQR-driven sigmoid contrast on L* with shadow and highlight protection, conditional saturation control via a Color Definition Confidence (CDC) metric, and asymptotic highlight compression to prevent clipping. An auto-adaptive mode derives per-image contrast strength and saturation gain from luminance IQR and chroma distribution.
v1.3.0 · MIT · GitHub · DOI: 10.5281/zenodo.21278447
Released 8 July 2026. FR4M3 is a landscape-only directors’ composition viewfinder for mobile cameras. It overlays an aspect-ratio mask and a selectable guide on the live feed: rule-of-thirds, phi grid, Fibonacci spiral, dynamic symmetry, rabatment, safe areas, head-room/lead-room markers, eye level, depth planes, triangular composition, 180-degree axis, or center cross. The Fibonacci spiral is drawn as connected quarter-circle arcs that start on the right for landscape frames and on the bottom for portrait frames, winding inward from the periphery toward the focal eye. The Dynamic Symmetry grid thins the panel diagonals to 45% opacity and 0.6× line weight while drawing the reciprocals and vertical eye lines as solid 1.25× strokes, giving the eyes and reciprocals precedence over the background diagonals. Each guide includes a one-sentence description and a cinematography source. App name, status, and version float as overlays above the preview; the current ratio and guide appear in a bottom-left HUD. The shutter sits first in the vertical center of a right-hand toolbar, with flip, grid toggle, settings, and save stacked beside it. The settings button opens a left-hand panel the size of the live preview, containing the ratio and guide selectors plus the guide description and citation. Output saves at the active aspect ratio, up to 1920 px on the long edge, with an optional grid overlay. PNG.
v0.1.1 · released July 2026 · CC BY 4.0 · View Web Tool
Released 6 July 2026. 0xASC11 is a fifth mobile camera app in the 0x suite. It samples the live camera feed into a grid of cells and maps the average brightness of each cell to a rectangle-width glyph (A–K) from a custom font. Cell size and contrast are adjustable; styles include Mono (black on white), Invert (white on black), Accent (black on yellow), and Random (two sampled colors). Output saves as a 1080 × 1920 PNG.
v1.0.0 · CC BY 4.0 · View Web Tool
Released 5 July 2026. 0xHLFT is a fourth mobile camera app in the 0x suite. It captures a frame from the live camera feed and renders it as a halftone image with adjustable dot size, grid angle, and ink mode. Modes include black-and-white, duotone with selectable ink and paper colors, and moiré. Output saves as a 1080 × 1920 PNG.
v1.0.0 · CC BY 4.0 · View Web Tool
Updated 4 July 2026. Neon Noir v1.2.0 adds export format choice (JPEG, PNG, or WebP) and a custom filename prefix, so output can match delivery requirements without leaving the tool. The Output panel now lists the format dropdown and prefix field alongside the existing JPEG quality slider and download button.
v1.2.0 · CC BY 4.0 · View Web Tool
Released 3 July 2026. Renoir v3.5.0 adds
ArtistAnalyzer.artist_color_signature(), a
high-level API that computes an artist’s portfolio-level color
signature directly from a WikiArt name, with temporal or random
sampling and an optional per-period breakdown. A companion
lower-level method,
ArtistAnalyzer.analyze_works_color_signature(),
applies the same signature computation to any custom list of
works.
The release also fixes temporal sampling so that decade
shortfalls are redistributed to periods with unselected
candidates, ensuring the requested limit is met
whenever enough works exist overall.
v3.5.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.17355170
Updated 2 July 2026. Siss v0.3.0 adds a classic print-style
halftone look to the Python video-effects tool. A new
dot symbol type renders filled circles sized by
local luminance, and a new --grid_type option
switches between square sampling (default) and a hex-offset grid
that staggers alternating rows by half a step for traditional
halftone-screen output. Both options default to prior behavior,
so existing commands and scripts continue to work unchanged.
v0.3.0 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.21961221
Released 2 July 2026. Chroma Gridlock v2.0.0 is now hosted on the Qídé Studio site. The control panel is rebuilt with the studio’s Qídé UI library, typography switches to Nudica Mono, and the visual identity is aligned with the rest of the site. New contrast-safe color suggestions propose a passing text color for any hovered cell; click the suggestion to apply it. PNG export now omits the hover/lock outline.
v2.0.0 · CC BY 4.0 · View Web Tool
Released 1 July 2026. Video Dithering Tool v1.0.1 applies five dithering algorithms to video files frame by frame: Floyd-Steinberg (Floyd & Steinberg, 1976), Atkinson, Jarvis-Judice-Ninke (Jarvis, Judice & Ninke, 1976), ordered Bayer (Bayer, 1973), and random threshold. Outputs PNG sequences via FFmpeg or direct animated GIF export.
v1.0.1 · MIT · GitHub
Released 30 June 2026. Siss v0.2.1 is a Python command-line tool for applying duotone and halftone effects to video files. Duotone maps per-pixel luminance to a linear blend between two colors; halftone renders plus, asterisk, or slash symbols at luminance-proportional sizes over a 3×3-pixel grid. Inputs accept hex strings, CSS named colors, RGB triples, and named palettes. Output containers include MP4, MOV, AVI, MKV, and WMV, with a runtime VideoWriter_fourcc probe that selects a working codec per format and OS.
v0.2.1 · MIT · GitHub · PyPI · DOI: 10.5281/zenodo.21961221
Added 26 June 2026. Renoir v3.4.1 extracts and analyses works by individual artists from WikiArt using k-means palette extraction, four color-naming vocabularies, and harmony detection. Listed in the Awesome Digital Humanities GitHub list, with more than 10,000 downloads on PyPI as renoir-wikiart. DOI: 10.5281/zenodo.17355170.
Released 24 June 2026. Color Constancy Enhancement v1.1.0 implements color constancy algorithms for photo enhancement, based on the review by Foster (2011). The package provides Gray World, White Patch, Von Kries adaptation, Retinex, and spatial color correction, exposed through a composable pipeline API and a CLI. Comparison views, channel statistics, and an illuminant diagnostic are included.
v1.1.0 · MIT · GitHub
Updated 21 June 2026. Pixel Art Editor v2.1.0 is now hosted on the Qídé Studio site. The control panel has been rebuilt with the studio’s Qídé UI library, typography has switched to Nudica Mono, and the interface includes a Clean UI mode with a Show UI toggle that matches the rest of the archive. Images load via drag-and-drop, file picker, clipboard paste, or URL; nine pixel shapes apply to pixelation and drawing strokes, with pixel-size and grid-division modes adjustable in real time. Divisions mode adds a Width from Brightness toggle for duotone halftone effects. A text overlay supports a nine-position dropdown and independent pixelation; a color palette manager holds up to 16 swatches. Sessions autosave to localStorage every 30 seconds, and work saves as a portable JSON project file alongside PNG and SVG export.
v2.1.0 · CC BY 4.0 · View Web Tool
Updated 20 June 2026. Pattern Creator v2.0.0 is now hosted on the Qídé Studio site. The control panel has been rebuilt with the studio’s Qídé UI library, typography has switched to Nudica Mono, and the interface includes a Clean UI mode with a Show UI toggle that matches the rest of the archive. The underlying p5.js pattern engine is unchanged: up to five stacked layers of shapes can be sized, spaced, rotated, and colored independently, then exported as a high-resolution PNG. Presets can be saved and loaded, and a custom SVG shape can be uploaded for use in any layer.
v2.0.0 · CC BY 4.0 · View Web Tool
Updated 20 June 2026. Fractal Dimensions v1.1.0 migrates the experiment to the studio’s shared Qídé UI control panel, giving it the same look and interaction model as Wave Dynamics and Algorithmic Forms. The fractal selector, iteration and motion controls, color pickers, and visibility toggles are now grouped in a collapsible panel; live monitors report vertex count, fractal dimension, and FPS. Clean UI mode, an info modal per fractal, and PNG / 30-second WebM export round out the update.
v1.1.0 · CC BY 4.0 · View Experiment
Updated 19 June 2026. Algorithmic Forms v1.3.0 improves algorithmic fidelity across the experiment: the gyroid is now a true Marching Cubes isosurface instead of a point cloud, the Hopf fibration is rendered as explicit circle fibers via stereographic projection, and the superellipsoid exposes two independent shape exponents. The vertex shader now recomputes normals after displacement, non-orientable surfaces receive reduced displacement to preserve topology, and the wireframe overlay now uses the same shader so it deforms with the surface. Independent Surface and Wireframe toggles allow wireframe-only views, and geometry rebuilds are debounced with vertex-count caps for smoother interaction.
v1.3.0 · CC BY 4.0 · View Experiment
Updated 18 June 2026. C0SM1C SCR1P7 0x6E v1.3.0 adds single-frame PNG export. The Export panel now includes a PNG Res dropdown (1920 × 1080, 2560 × 1440, 3840 × 2160, or Current viewport) and a Save PNG button. The canvas temporarily resizes to the chosen resolution, renders one frame, downloads the image, and restores the viewport.
The tool continues to render user-supplied text as animated 3D point clouds via real-time WebGL, with the Qídé UI control panel, Nudica Mono typography, Clean UI mode, custom font and photo sprite upload, keyframe timeline, WebM recording, GIF export, and PNG sequence export.
v1.3.0 · CC BY 4.0 · View Web Tool
Updated 18 June 2026. Wave Dynamics v1.2.0 migrates the controls to the studio’s Qídé UI library, adopts Nudica Mono typography, and adds a Clean UI mode with a “Show UI” toggle. The experiment now runs nine real-time WebGL wave simulations: Standing Wave, Wave Interference, Ripple Tank, Chladni Pattern, Perlin Noise, Spherical Harmonics, Kelvin-Helmholtz Instability, Bessel Function, and Wave Packet. New controls include color pickers, independent Surface and Wireframe toggles, particle toggle, auto-rotate, live monitors for vertices, wavelength, and FPS, plus export options for PNG stills and 30-second high-resolution WebM video.
v1.2.0 · CC BY 4.0 · View Experiment
Updated 17 June 2026. C0SM1C SCR1P7 0x6E v1.2.0 migrates the control panel from Tweakpane to the studio’s Qídé UI library, adopts Nudica Mono typography, and adds a Clean UI mode with a “Show UI” toggle. The tool still renders user-supplied text as animated 3D point clouds via real-time WebGL, with photo sprite mode, a keyframe timeline, custom font upload, and multi-format export: WebM, GIF, and PNG sequence.
v1.2.0 · CC BY 4.0 · View Web Tool
Released 17 June 2026. Babylonian Mathematics v1.0.0 is a browser-based visualisation of Babylonian mathematics through seven interactive geometric sketches: sexagesimal arithmetic, Plimpton 322 Pythagorean triples, Seleucid-period zigzag functions, the YBC 7289 square-root of 2 approximation, BM 13901 completing-the-square proofs, and reciprocal tables. Controls are built with the studio’s Qídé UI library.
v1.0.0 · CC BY 4.0 · View Experiment
Updated 16 June 2026. Particle Nova v1.1.0 migrates the control panel to the studio’s Qídé UI library, matching the site typography and styling. The update adds Pulse and Orbit explosion modes and removes the Brightness and Contrast sliders.
v1.1.0 · CC BY 4.0 · View Web Tool
Updated 13 June 2026. Color lab v2.1.0 replaces the inline HTML controls with the studio’s Qídé UI library, matching the site typography and styling. A Harmonies section lets users isolate and display one relationship at a time – complementary, analogous, triadic, or tetradic – directly on the wheel. The color-count slider now ranges from 6 to 48 sections, and the wheel scales to 80% of the viewport on large screens. The JSON / ASE / ACO export remains unchanged.
v2.1.0 · CC BY 4.0 · View Web Tool
Updated 13 June 2026. 5YN7H 0x1F v1.1.0 migrates the control panel to the studio’s Qídé UI library and adds a Clean UI mode that hides the panel, badge, and footer for unobstructed recordings. Users can now upload their own font to replace the default Nudica Mono, and a licence note explains that Nudica Mono requires a separate commercial licence for commercial use. The recording time monitor, audio upload trigger, and dynamic record/stop button are preserved, and the CSP was adjusted so the particle text font continues to load.
v1.1.0 · CC BY 4.0 · View Web Tool
Updated 13 June 2026. Neon Noir v1.1.0 replaces the Tweakpane control panel with the studio’s own Qídé UI library, unifying the tool’s typography and interaction design with the main site. The update also introduces a Compare toggle that swaps between the processed image and the original upload without reprocessing.
v1.1.0 · CC BY 4.0 · View Web Tool ·
Released 2 May 2026. 0xB1T T1L3S renders a live camera feed as a grid of rectangular color blocks. Pixel width and height are controlled independently, yielding square tiles, horizontal bands, or vertical columns. Four style mappings – Dream, Mono, Neon, and Ghost – posterise each block using a perceptual luminance formula. A live preview mode runs the effect in real time; output saves as a 1080 × 1920 PNG.
v1.0.0 · CC BY 4.0 · View Web Tool
Updated 30 April 2026. 0xB0DY BIT6 v2.0.0 moves the segmentation engine to TensorFlow.js BodyPix, which maps a live webcam feed into 24 distinct body-part regions. Each region renders as a field of 0s and 1s in a region-specific color. The update introduces five palette modes: Neon, Mono, Infra, Ice, and Custom. Density and glyph size remain user-adjustable; captures save as PNG. This release represents a substantial architectural change from v1.
v2.0.0 · CC BY 4.0 · View Web Tool
Updated 28 April 2026. (Image) Color Analysis Tool v1.2.0 adds CSS custom properties, W3C Design Tokens JSON, and Tailwind configuration snippets to its export formats. The new outputs drop directly into design systems and front-end build tooling. Plain-text and JSON exports remain available. DOI: 10.5281/zenodo.17848058.
v1.2.0 · MIT · GitHub