2026

Your new, free creative tool

Most dithering and halftone tools are built around one-click filters, limited customization, or paywalls. So I asked myself: what if these effects could become part of a real creative workflow?
The result is POINTLESS: a free, open-source desktop application where different rendering techniques can be layered, combined, localized and animated within a single non-destructive workspace.

Github
POINTLESS
pointless tools

POINTLESS started casually, because I needed visuals for one of my projects: Ultrasuono’s brand identity. Existing dithering and halftone tools felt too limited, so I started building my own.
What began as a small experiment evolved into a complete desktop creative tool, designed from scratch and developed through AI-assisted coding.

ROLE

Product Designer / Creator

DISCIPLINE

Product Design, UX/UI Design, Interaction Design, Brand Identity, AI-assisted Development

SKILLS

UX DesignUI DesignProduct DevelopmentAI-assisted codingBrand IdentityCreative Direction
CHAPTER 01:
NECESSITY

I just needed some visuals

While designing Ultrasuono’s brand identity, I realized that custom halftone graphics would fit perfectly within its visual language. I explored several existing tools, but none offered the flexibility I needed: they were either uninspiring, paywalled, incomplete, or too slow to use.

I just needed some visuals

I built my own tool

After searching for a while, I decided to experiment and build the tool myself. With Gemini’s help, I created a simple prototype tailored to my specific needs.

Ultra Ditherer divided an image into chunks and replaced each one with a custom SVG based on its luminance. It was slow, unstable and built as a single Python script, but it did exactly what I needed.

I built my own tool

The process:

Step 1:

Importing and loading images into the creative workspace

Step 1:

Step 2:

The image is divided into a grid, and the luminance of each cell is calculated

Step 2:

Step 3:

Each cell is rendered using the selected custom SVG, scaled according to luminance

Step 3:
CHAPTER 02:
STARTING OVER

I didn’t like what I built.

After completing the first version, I left the tool untouched for several months. In the meantime, I gained new experience, became more familiar with coding tools and platforms like GitHub, and learned the fundamentals of software development.

I also started exploring other creative tools in the space. Many of them were incredibly well designed and showed me how much further I could push the original idea, both visually and functionally.

Eventually, I decided to start over from scratch and turn a rough experiment into a product I could actually use and expand.

I didn’t like what I built.

First, the essentials.

I started by rebuilding the original tool from scratch with Claude Code, this time in C++/Qt6 and with clearer requirements for both the interface and performance. The functionality was still essentially the same, but the foundations were completely new.

Before

Functional, but without a good design system.

Before

After

First mockup of the rebuild, with a more structured interface.

After

A midway result

With the addition of layers, frame controls, image transformations and a timeline, the tool had reached a solid first version. However, it still lacked personality and the level of polish I wanted.

A midway result
CHAPTER 03:
BUILD AN IDENTITY

The tool had to walk its own way

At this point, the tool had grown beyond being an extension of Ultrasuono. It needed an identity of its own.
I took an ironic approach and named it POINTLESS, for three reasons:

1. A play on “points”, referencing the dot-based technique the project originated from


2. Projects can be saved using the .less file format


3. A bit of self-irony about spending so much time building a potentially pointless tool

I then built the visual identity around an acid yellow and a system of circular shapes, creating a distinctive set of assets that could extend across the product.

The tool had to walk its own way

The final interface

The new interface feels more distinctive and less generic, thanks to a stronger design system, greater consistency and closer attention to detail.
To make the tool scalable, I also redesigned the rendering mode selector as a dropdown, allowing new modes to be added without changing the overall layout.

The final interface

The process:

Selection of Modality

The interface is no longer limited to three rendering modes, allowing new ones to be added without affecting the layout.

Selection of Modality

Colors

Users can choose between the image’s original colors or a custom palette of 1 to 8 colors.

Colors

Palette

Alongside the mode settings, users can browse predefined palettes or create and save their own.

Palette

Timeline

The timeline follows a parent-child structure, with animated parameters nested under each content.

Timeline

ASCII

Includes several advanced settings, including multiple built-in rendering modes and extensive customization options.

ASCII

Dithering

The Dither mode is the most complex, it provided the foundation for designing the rest of the interface.

Dithering
CHAPTER 04:
DEAL WITH AI

Slowly understanding how to properly use AI.

At the beginning of the project, I had little idea how to structure an AI-assisted coding workflow. The result was inconsistent: different sliders, broken spacing, interfaces that didn’t match the mockups, and many small issues.

Over time, I learned how to work with AI more effectively: structuring prompts, managing context and tokens, and providing clear instructions and documentation.

Today, adding new features to POINTLESS is much easier. The project is well documented, and the AI has clear guidelines to maintain visual and UX consistency as the tool evolves.

Slowly understanding how to properly use AI.

Designing performance is designing UX

One of the biggest issues early on was performance: the tool was slow, laggy, and often produced incorrect previews. With AI-assisted development, I was able to rework the rendering pipeline using OpenGL, making the experience much faster, smoother and more responsive.

What I learned from Pointless:

1

Iteration

A rough prototype that solves one specific problem can become the foundation for a much larger product.

2

Design systems

As POINTLESS grew, I learned to build scalable patterns that could accommodate new modes and increasingly complex workflows.

3

Make technical decisions

Performance, rendering and architecture directly affect how fluid and enjoyable a creative tool feels.

4

AI needs direction

I learned to treat AI as a development tool, using structured documentation, clear constraints and context management to achieve consistent results.

5

Knowing when to start over

Sometimes improving an existing solution creates more constraints than rebuilding it with a clearer vision and stronger foundations.