Skip to content
View tsevis's full-sized avatar

Block or report tsevis

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
tsevis/README.md

Charis Tsevis

Visual designer living on the sunny side of the planet — building the tools I want to design with.
tsevis.com


I am a visual designer, and almost everything in this account is a tool I needed and could not buy. Photographs into instrument imagery, maps into editable vector artwork, a crowded sheet of icons into a named and separated library, colour theory into something you can actually move a slider on.

They are mostly Python desktop applications: local-first, offline by default, no cloud endpoints, and built for a real production workflow rather than a demo. Several are named after the Greeks who got there first — Hipparchus, Heron, Diophantus — which is not a theme so much as a habit.

Hipparchus rendering Santorini, in light appearance
Hipparchus — Santorini, fetched live from OpenStreetMap through Overpass and rendered straight out to layered, editable SVG.


Computer vision and machine learning, from a designer's side of the desk

My interest in computer vision is a designer's interest: I want a machine to understand a picture well enough that I can restructure it. Not to classify it, not to caption it — to take it apart along the seams that actually matter and hand me the pieces.

That splits into two halves I keep using together.

Learned vision, run locally. Open-vocabulary detection and segmentation (GroundingDINO, SAM 2.1, VitMatte) do the semantic layering in Skiagrafia; a local vision-language model (Qwen2.5-VL / Qwen3-VL, through either Ollama or llama.cpp) gives Shapearator its semantic naming, so an extracted icon lands as heart.png rather than icon_003.png; monocular depth, subject matting, and SAM 3 region materials give Heron the scene understanding its physics needs. The constant is that inference is local and deterministic — model loaders are pinned to local_files_only, and an engine that reaches for the network mid-render is neither offline nor reproducible.

Classical, geometric computer vision, which is still where most of the work happens: centroidal Voronoi cells, Delaunay meshes, hex grids and circle packing as derived map geometry in Hipparchus; shape detection, cropping and canvas normalization in Shapearator; and in Diastasis the overlap graphs and colouring search that separate tangled vector artwork into production plates — and can prove the layer count is minimal.

And underneath both, colour as a measurable thing: perceptual spaces (Oklab, CIELAB) for ramps that climb monotonically, and Metelli's equations for perceptual transparency in Garau Armonie.

The through-line is simple enough: I want tools that find the structure in a picture, not tools that summarize it.


Selected projects

Hipparchus Night preset — Athens drawn as lit streets against an unlit ground Desktop vector cartography. Live OpenStreetMap through Overpass, local .osm.pbf, vector tiles, Natural Earth, Overture, terrain DEM and VIIRS night lights — out to layered, editable SVG that opens clean in Illustrator. A shelf of cartographic presets, plus derived Voronoi, Delaunay, hex-grid and circle-packing geometry. Eight renders of different subjects, one for each Heron instrument Photographs re-synthesized as if captured by an instrument that sees past human vision — thermograph, fluoroscope, intensifier tube, NIR, Kirlian plate, schlieren bench, lumen chamber, spectroscope. Eight physically distinct engines on one pipeline. A physics simulation, not a gradient map. Artistic simulation — never a measurement or a diagnostic.
The Garau Armonie Composer, showing a four-zone perceptual transparency figure A studio to teach Augusto Garau's colour theory and simulate his perceptual Colour Transparency, in memory of an unforgettable professor. One framework-agnostic TypeScript engine drives both a web studio and a Photoshop plugin, so a colour reads identically wherever you meet it.
Live demo →
The Skiagrafia interface showing semantic segmentation and masking layers Semantic vectorizing and masking. Local ML segments an image into objects and their parts, then writes both vector (SVG) and bitmap (TIFF/PNG) layers. 100% local inference, with a first-run wizard that fetches the weights so a fresh clone simply works.
The Shapearator workspace, separating icons from a single sheet One crowded sheet of shapes in, a tidy library out — each icon detected, cropped, normalized onto a shared canvas, and exported to PNG/JPG/TIFF/SVG with per-icon metadata. Ollama and llama.cpp are interchangeable first-class backends behind a single vision-client contract. The Diophantine encryption and compression companion interface An encryption and compression companion, named for Diophantus of Alexandria. The one thing here that has nothing to do with pictures.

Also in the workshop

Diastasis Separates complex SVG artwork into production-ready layers — overlap-aware, area-exclusive, or one plate per ink colour for screen-print, vinyl and risograph. The minimum_layers search will tell you when a layer count is provably minimal.
MacWhisperer A macOS GUI for OpenAI Whisper: local transcription and English translation, live recording, device controls, file workflows.
IllusionFun Generates Kitaoka-style diagonal-bevel optical illusion patterns as SVG.
crawl4ai-ui A Streamlit front end for Crawl4AI — pages to clean Markdown, with link/image preview, screenshots and export.
gh2ghx A small Grasshopper file converter.

Toolbox

Python · NumPy · SciPy · OpenCV · shapely · scikit-learn · PyTorch · Tkinter · skia-python · FastAPI · Streamlit
TypeScript · React · Vite · Adobe UXP
Local inference · Ollama · llama.cpp · SAM · GroundingDINO · Whisper
Output that matters · SVG · GeoTIFF · PMTiles · TIFF


tsevis.com · all repositories

Pinned Loading

  1. Diastasis Diastasis Public

    Diastasis is a designer-focused SVG separation tool that converts complex vector artwork into production-ready layers using Overlaid and Flat complexity modes, with clipping, batching, performance …

    Python 5 1

  2. diophantine diophantine Public

    Encryption & compression companion — inspired by Diophantus of Alexandria

    Python 2

  3. Hipparchus Hipparchus Public

    Desktop vector cartography app for clean, editable SVG maps — from live OpenStreetMap, local OSM extracts, vector tiles, Natural Earth, Overture, terrain DEM, and VIIRS night lights.

    Python 17 2

  4. shapearator shapearator Public

    Shapearator is a local-first desktop app and CLI for extracting individual shapes or icons from a single PNG or SVG sheet, exporting them as clean, organized assets with metadata. It helps turn one…

    Python 1

  5. skiagrafia skiagrafia Public

    Semantic Vectorizing and Masking Creator: A desktop application for AI-powered image segmentation, masking, and vectorization.

    Python 2

  6. garauarmonie garauarmonie Public

    A studio to teach and simulate Augusto Garau's color theory and perceptual Color Transparency — one TypeScript engine powering a web studio (Composer · Stacker · Analyzer · Gallery · Theory) and a …

    TypeScript 2