Skip to content

jev-paint

Local browser app that turns Jev's per-pixel colour probability distributions into textured paintings.

Browser extensionprototypeMIT

Overview

jev-paint is a small local creative experiment that paints images from Jev's probability distributions. You choose a representation (palette, HSL, binary RGB or silhouette) and grid size and enter a prompt; prompts describe pixels and regions rather than sending raw images. The browser builds typed questions per pixel, sends them in four concurrent batches, and turns the returned distributions into a painting.

The renderer is deterministic: spatially correlated categorical sampling supplies stroke pigments, the mean colour supplies the underpainting, entropy controls relief, strokes follow luminance contours and a height map adds impasto lighting. Per the list summary, predicted confidence shapes how strokes are drawn. HSL and RGB channels are treated as independent because Jev gives no joint distribution. A Python standard-library helper serves files and forwards requests, since the API disallows browser CORS. The README stresses this is an artistic transformation, not a probability chart. Offline tests use recorded fixtures.

What the decision model decides

TypeQuestionAnswers
ChoiceWhat colour (palette entry or channel level) is this pixel for the prompt?(inferred)—

How it works

  1. Start the local helper and paste a Jev key
  2. Choose representation, grid size and prompt
  3. Send per-pixel typed questions in batches
  4. Render the distributions into a painting in a worker

Strengths

  • No packages or build step
  • Offline tests and benchmarks with recorded fixtures
  • Key and prompts sent only to TypeSafe

Caveats

  • Larger grids mean more paid requests
  • Key stored unencrypted in browser localStorage
  • Artistic output, not a faithful image

Getting started

python3 server.py, then open http://127.0.0.1:8791 and paste your Jev key in Settings.

At a glance

Type
Browser extension
Status
prototype
Language
JavaScript
Runtime
Browser app with Python helper
Has code
yes
Has tests
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Creative experiment: paints images by having Jev predict every pixel's colour in parallel, with predicted confidence deciding how wide each stroke is drawn.

    yibie/awesome-jev
  • Requires Python 3.9+ and a modern browser with module workers and OffscreenCanvas (current Chrome, Edge, Firefox, or Safari). No packages, build step, or Node installation needed.

    logicrw/awesome-jev-projects
  • Local browser app that turns batched per-pixel Jev distributions into paintings; prompts describe pixels and regions rather than sending raw images.

    cobanov/awesome-jev
  • Local app that turns Jev's per-pixel probability distributions into paintings.

    MrJev/awesome-jev

Frequently asked questions

How does Jev paint?

It gives a colour probability distribution for each pixel, which a deterministic renderer turns into strokes.

Does it send images to Jev?

No. Prompts describe pixels and regions in text.

Do I need Node?

No. Python 3.9+ and a modern browser are enough; Node is only used for tests.

Related projects

  • Toy chat that makes Jev talk by repeatedly choosing its next word from a tiny caveman vocabulary.

    ProjectprototypeTypeScript
  • Text generation with Jev via cascaded Choice questions: word type, WordNet category, embedding cluster, then the word itself.

    ProjectresearchPython
  • Experiment that uses Jev as a sampler: DeepSeek proposes top-k next tokens and Jev chooses which comes next and when to stop.

    ProjectresearchPython
  • Experiment that makes Jev produce prose by asking one choice question per word over a routed domain vocabulary.

    LibraryresearchJavaScript
  • Playful web arena where Jev does arithmetic, writes chat replies and draws pixel art one Choice or Noul decision at a time.

    Demoprototype
  • ChatGPT-style web chat where every word of every reply is a Jev multiple-choice decision over a ~1,800-word vocabulary plus END.

    ProjectprototypeTypeScript