Skip to content
Gurley Studios
Latest milestone: Control software runs end to end in simulation

Needlepoint Painter

A DIY machine that paints needlepoint canvases

A brand we liked stopped selling its large hand-painted stocking canvases, so I'm building a machine to paint our own. It takes a stitch chart, which is a grid where each square is one thread crossing and one color, and paints it onto blank mono canvas with a brush and thinned craft acrylic. Professional canvases are painted by hand the same way.

Mono canvas threads wander and shift. A grid lined up once at the start drifts off the real threads, so the machine has to follow the mesh the way a person counting threads does. A camera on the gantry looks at each small patch right before painting it and checks the result right after. A light pad under the canvas makes the holes show bright and the threads dark, whatever color has been painted on them.

Building it is part of the point. The frame will be a stock MPCNC Primo from V1 Engineering, with its plastic parts printed on my X1C and a Jackpot3 controller running it. I'm designing what mounts on it: the brush holder, camera mount, palette with rinse cups, and the canvas fixture. As of late September 2026 the control software is written and runs end to end against a simulator. The machine isn't built yet.

Colors per design
20 to 30
Paint wells planned
About 25
Accuracy needed
±0.3 mm
Stepper motors
5
Estimated parts cost
$750 to $1,060

How it works

  • Paints from a stitch chart

    A design is a grid of thread crossings with a color for each one. The machine plans its passes straight from that grid, so there's no vector artwork or drawing software involved.

  • Light colors first

    Colors go on lightest first so small spills get covered by darker paint later. Within each color, cells become short strokes along thread rows, grouped into patches sized to what one dip of the brush can cover.

  • One brush, about 25 paint wells

    There's no tool changer. Between colors the brush goes through a dirty rinse, a clean rinse and a blotting sponge, then loads the next color from its own well.

  • Test dab after every dip

    After dipping and wiping, the brush dabs a calibration pad and the camera measures the mark. A light dab means re-dip, and a worn dab shape means it's time to swap the brush. The dab also shows where the brush tip sits relative to the camera, which shifts as the bristles bend and wear.

  • Backlit mesh tracking

    The machine scans the whole canvas in overlapping photos and gives every crossing a row and column. It counts neighbor to neighbor, so small errors don't add up across the canvas, and it needs no printed alignment marks.

  • Look, paint, check

    Brush pressure and damp paint move threads, so the camera looks again right before each patch. After painting it checks coverage, queues touch-ups for anything missed, and sends a clean dry brush into any hole that filled with paint.

  • Stops when the aim is off

    Paint on crossings that should never get that color means the aim has drifted. When the check finds three or more, the machine rinses the brush, parks and stops before the mistake spreads. In simulation, an aim error of one thread gets caught this way.

  • Picks up after a stop

    The machine keeps a log of finished patches. Restarting a stopped job skips the patches already done and runs any dry-brush work still pending.

  • Tested without hardware

    A simulated canvas with wandering threads, a fake controller and a fake camera run the same motion commands the real machine will get. The whole loop gets exercised before any parts arrive.

Plan

  1. Done

    Design and parts list

    Picked the frame, controller, camera and applicator, and priced the parts.

  2. Done

    Control software in simulation

    The full look, paint and check loop runs against a simulated canvas, controller and camera.

  3. Next

    Phase 1: hand tests

    Paint swatches on canvas scrap with water, Flow-Aid and Slow-Dri mixes, let them dry, soak them, and press them on a white towel to see if color transfers. The same round measures how far one dip goes, how long open paint stays workable and how often paint fills holes. A syringe gets tried as a backup applicator, and the camera gets its first detection test on a printed stand.

  4. Next

    Phase 2: build the machine

    The frame and motion parts work with any applicator, so they can be bought and printed before the paint tests finish. Then design the palette from the test results, set the final work area, cut the conduit and build the Primo following V1's docs. Last comes tuning the brush holder, dip depth and wipe.

  5. Later

    Bring-up on real hardware

    Calibrate against the real machine, run a paint pass in the air over a bare table, then scan real canvas and paint a chart.

  6. Later

    GPU checking models

    Train paint and coverage detection on the photos the machine saves of its own work, once there are real images to learn from.

Milestones

2 milestones since September 2026.

  • Milestone
Simulator runPlan and parts listPlan and parts list, Sep 14, 2026: Plan and parts list worked outSimulator run, Sep 23, 2026: Control software runs end to end in simulationSep2026

September 2026

  1. Control software runs end to end in simulation

    Simulator runLatest
    • Wrote the full look, paint and check loop before any hardware exists
    • A simulated canvas with wandering threads stands in for the machine and camera
    • With the aim pushed one thread off on purpose, the check finds the stray paint and stops the job
    • A stopped job picks up where it left off
    • Every photo the machine takes is saved with what it expected to see, to train checking models later
  2. Plan and parts list worked out

    Plan and parts list
    • Set the goal: full-size stocking canvases with 20 to 30 colors and no manual color changes
    • Ruled out the xTool M2 because its water-based dye ink may not survive blocking
    • Started from a belt-driven V-slot plotter modeled on WaterColorBot, with two webcams, then moved to a stock MPCNC Primo and a Jackpot3 controller
    • Tried paint markers, then went back to a brush and thinned craft acrylic after hearing markers cover worse
    • Replaced the two webcams with one 12MP camera on the gantry over a backlit canvas

FAQ

Why not buy a machine that already does this?

The closest I found was the xTool M2, which has good camera registration for printing and cutting. Its ink is a water-based dye. Finished needlepoint canvases get dampened and stretched (called blocking), and dye ink doesn't reliably survive that. It's also a sealed appliance, and building the machine is part of why I'm doing this.

Why a brush instead of paint markers?

Markers were the plan for a while because they skip thinning paint, reloading and rinsing. People who paint canvases report that markers don't cover as well as brushed paint. Brush and thinned acrylic is how professional canvases are painted by hand. It's hard to automate blind, so the camera loop watches for thin coverage or a filled hole and fixes it. A Posca marker set stays on the test list for a side-by-side comparison.

Why use the MPCNC instead of designing a frame?

Moving a tool around in X and Y is a solved problem. The MPCNC Primo has thousands of builds, step-by-step docs and a ready controller config, which leaves my design time for the camera loop and the brush. A known-good frame also keeps mechanical error from getting mixed up with vision error while I debug.

How does it know the paint went on the right crossing?

Every check photo finds the mesh holes again and re-anchors the grid to that image, so it measures against the threads it can see. It reads the paint crossing by crossing and compares it to the test dab from the same brush load, which accounts for how wet paint looks. Three or more crossings with paint that shouldn't be there stops the job.

Does it work yet?

The software does, in a simulator. As of late September 2026 there's no machine. Next come hand tests of paint and brushes, then building the frame.

How does this relate to Meshmerize?

Meshmerize is my Mac app for designing needlepoint patterns and turning photos into them. The painter's job starts once a pattern exists: it reads a stitch chart and paints it. Meshmerize exports patterns as PDFs and the painter reads a chart as a color grid, so nothing passes directly between them today.

What does it run on?

My home server, which sits in the same room as the machine. The controller and camera plug into it over USB. Its GPU is there for the checking models later on.

A DIY machine that paints needlepoint canvases