Skip to content

The Orange Scribble Problem

’ve been rebuilding DUSK as a local-first application.

DUSK is my attempt to make a practical lighting visualisation tool using generative AI. You upload an image, select an area and describe a lighting treatment: uplight the columns, wash the ceiling, turn the scene into night, add concealed light beneath a bench.

The original version relied heavily on Google Gemini. That was useful for getting a prototype working quickly, especially as I am a lighting designer who has somehow wandered into software development without proper supervision.

It also meant that everything depended on a cloud service.

Every generation had a cost. The app needed API keys, usage limits and some method of preventing a stranger from producing several thousand dramatically illuminated hotel lobbies at my expense. It was also tied to whatever changes Google might make to its models, pricing or access.

DUSK Local is an attempt to move the important processing onto the user’s own computer.

The interface currently still runs in a browser, but it is really just the studio window. The image generation happens through a local engine, with the option to connect to other providers later. DUSK is slowly becoming less of a website attached to one AI model and more of a general lighting visualisation harness.

At least, that is the plan.

Most of the recent work has involved trying to explain that orange scribbles are instructions. DUSK allows you to draw guide marks onto an image to show where a lighting effect should appear. An orange line beneath a bench should mean “add concealed lighting here.”

Sometimes the model understands this perfectly.

Sometimes it carefully reproduces the orange line in the finished image. Technically, it has followed the reference image with great accuracy, which makes it difficult to argue with. The lasso tool has caused similar problems. It is supposed to let someone select part of the image and say: do the thing here, please, rather than somewhere vaguely similar on the opposite side of the room.

The results have gone through several stages of being nearly correct.

One version placed the light in the right location but left the rest of the image looking like midday. Another created a convincing night scene, complete with reflections and spill light, but moved the main lighting effect outside the selected area. Fixing that brought the orange guide marks back.

Each improvement seems to uncover an entirely new problem.

It is behaving much better now. The selected area controls where the main lighting treatment appears, while the rest of the scene can still react naturally. Light does not stop at the edge of a selection mask. It spills, reflects, creates shadows and alters the surrounding atmosphere. There have also been a lot of less visible changes: better image uploads, clearer limits, provider settings, presets, image history, comparison tools and downloads.

None of these are particularly exciting to show in a screenshot, but they are the sort of boring details that slowly turn a prototype into something another person might actually be able to use.

The next major feature is the Light Painter, which should make it possible to sketch lighting more directly onto an image. I also want to revisit luminaire importing, so that real lighting equipment can eventually become part of the workflow. After that comes installation, project saving, diagnostics and error messages that do not make people feel as though they have destroyed their computer.

Local AI is still awkward. Models behave differently, hardware requirements vary wildly, and some appear to assume that everyone has an underground data centre beneath their desk. DUSK will eventually need simple presets for speed, quality and hardware capability.

Eventually, I'll package the whole thing as a proper desktop application. Right now it still involves starting a development server beside a separate local engine, which feels a little like opening the bonnet and touching two wires together.

DUSK Local is still an MVP, although “MVP” is doing quite a lot of emotional work there. It works. Some parts work surprisingly well. Others are held together by stubbornness and the fear that changing one line of code will cause the orange scribbles to return. Still, it has a clearer direction now.

That feels like progress.

Did you enjoy this article?

Recommend it — Standard Reader surfaces well-loved writing to more readers across the network.

Across the AtmosphereDiscussions