A Parametric Pattern Generator (DXF) for CNC & Laser


A Parametric Pattern Generator (DXF) for CNC & Laser

Well hello there, it’s been a while for me and this text thing. I’ve focused a lot on video in recent years – but I know that sometimes when you’re looking to use something you really just want the text that explains it. so here we are. This is my attempt to put into text the information that I also put into my most recent youtube video about my new app/service.

I’ve been playing a lot recently with diamond drag engraving and laser etching, and I kept running into the same problem:

“I’ve got this nice blank panel in my design… now where do I get a pattern that actually fits it and looks how I want?”

You can trawl sites for free SVGs, buy pattern packs, tweak them in CAD… but it’s fiddly, repetitive, and often still not quite right.

So I built my own tool instead: a browser-based pattern generator that’s designed for CNC and laser workflows. It lets you:

  • Design parametric tiled patterns
  • Drop them neatly into your own DXF outlines
  • Add cutouts for text or logos
  • Download the final combined DXF ready for CAM

And you don’t have to touch code or do weird post-processing scripts.

👉 YouTube walkthrough:
If you prefer video, I recorded a full walkthrough here:
https://youtu.be/qYtSuycVC9s


Where to find it

The pattern generator lives on my site:

You’ll need to sign up and sign in first. That’s using AWS Cognito – I’m not harvesting anything juicy, I just:

  • Need to know who I’m generating patterns for
  • Need some way to track DXF download limits (compute isn’t free!)

Once you’re signed in, you land on the pattern tool.

💡 It’s very much a desktop-first UI. It technically works on mobile, but the controls are not exactly “thumb friendly”.


What the tool actually does

At a high level:

  1. You define a tiled pattern: shapes repeated across a grid of tiles.
  2. You optionally upload:
    • A boundary DXF (the shape you want to fill)
    • One or more cutout DXFs (areas to exclude from the pattern – e.g. text)
  3. The tool:
    • Tiles your pattern
    • Clips it to the boundary
    • Removes anything inside the cutouts
  4. You download a single DXF containing:
    • PATTERN layer
    • BOUNDARY layer
    • CUTOUTS layer

Perfect for engraving or laser etching panels, inlays, nameplates, card wallets, etc.


A quick tour of the UI

When you first log in, you’ll see a default pattern and a few example boundaries/cutouts you can play with.

MakerGeek pattern generator UI with controls on the left and tiled preview on the right.

Pattern list & saving

At the top you can:

  • Name your current pattern
  • Switch between existing patterns
  • Create a new one
  • Delete patterns you don’t want anymore

Changes are auto-saved as you tweak controls – so you can build up a library of favourite patterns and reuse them with different boundaries and cutouts.


Grid: tiles and layout

The Grid section lets you control the “world” your pattern lives in:

  • Tile width / height (mm) – the size of a single repeat tile
  • Tiles X / Tiles Y – how many tiles to show in the preview
  • Single-tile preview – toggle to focus on just one tile while designing

Behind the scenes, the pattern engine can tile as far as it needs to fill your boundary shape – the UI is just giving you a manageable view.

Controls for tile width/height with a grid preview of the pattern.

Elements: the actual shapes

Each pattern is made from one or more elements. An element is basically:

  • a shape (square, circle, polygon, line)
  • plus repeat behaviour (concentric copies, scaling, rotation, offsets)
  • plus an anchor (where it sits in the tile)

For an element you can control:

  • Shape type: square, circle, polygon, line
  • Outer size (in mm)
  • Rotation
  • Repeat settings:
    • Count (how many copies)
    • Scale delta (e.g. shrinking shapes: -3 mm each time)
    • Rotation delta (twist each copy)
    • Offset delta (drift across the tile)
  • Polygon sides (for triangles, hexagons etc.)
  • Line length (for strip-like patterns)

Anchors let you move shapes around within the tile:

  • Relative X / Y (0–1, from top-left to bottom-right)
  • Offset X / Y in mm

You can add multiple elements (e.g. circles over polygons), and each one gets its own settings.

“Pattern element controls showing shape, repeats, and anchor offsets.”
element panel showing 4 elements on one tile, each wit their own settings

Mirroring: flipping tiles for more interesting patterns

One of the fun parts is the mirror pattern.

You’re defining a tile grid, but you don’t have to render every tile identically. For each step across the pattern you can say:

  • Normal
  • Mirror in X
  • Mirror in Y
  • Mirror in both X and Y

And you can:

  • Define a mirror pattern sequence (e.g. [normal, mirrored XY, normal, mirrored XY])
  • Set a row offset, so each new row shifts where in that sequence it starts

This gives you those alternating, woven, “twisted” patterns where each tile is a mirrored version of its neighbours.

The power of mirroring – one simple tile just flipped and offset.

Boundaries & cutouts

This is where it gets powerful.

Boundary

The boundary is a DXF outline of the area you want to fill – for example:

  • The inset panel on a wallet
  • A specific shape on a guitar pickguard
  • A logo frame on a machine panel

You upload a DXF, give it a name, and select it in the dropdown. When you hit Render, the tool:

  • Tiles your pattern in 2D space
  • Clips it to the boundary shape

Cutouts

Cutouts are DXFs representing areas where you don’t want pattern – for example:

  • Text
  • Icons
  • Logos
  • Any arbitrary shape

You upload these separately and select them in the cutouts list. The engine:

  • Treats the cutout shape(s) as “holes”
  • Removes any pattern geometry that falls inside those areas

You can also optionally align cutouts to the boundary centre, useful when they weren’t exported in the exact same coordinate system from CAD.

There is a single boundary and cutout example pre-loaded – you’re a star!

A worked example: custom wallet panel

In the video I use a 3D-printed slim card wallet as a concrete example. The goal:

Fill the recessed panel with a geometric pattern, but leave a space for some text.

I’m using Fusion 360 for the CAD / CAM part, but the idea is similar in other tools.

1. Extract the panel outline and text as DXF

In Fusion:

  1. Import or open the model of the wallet.
  2. Convert the mesh to a body (if needed).
  3. Split the body so you have a clear panel face.
  4. Create a sketch on that face and project the panel outline.
  5. Clean up anything you don’t need so you end up with a single nice closed profile.
  6. Export that sketch as DXF – this is your boundary.

Then for the text:

  1. Create another sketch on the same plane.
  2. Use the text tool (e.g. write "Wallet").
  3. Explode the text so it becomes actual sketch geometry (lines/curves).
  4. Keep only the text shape, remove any construction lines.
  5. Export that as a second DXF – this is your cutout.

Now you have:

  • wallet_outline.dxf
  • wallet_text.dxf

Perfect.


2. Upload outline & cutouts to the pattern generator

Back in the pattern tool:

  1. Go to the Boundary section and upload wallet_outline.dxf
    • Give it a sensible name, e.g. "Wallet panel outline"
  2. Go to the Cutouts section and upload wallet_text.dxf
    • Name it, e.g. "Wallet text cutout"

Select your wallet boundary in the dropdown and your text cutout in the cutouts list.

You should now be able to hit Render preview and see:

  • The panel outline
  • Your chosen pattern filling that outline
  • The text area cut out

If you don’t see anything, or it’s off-screen, the “centre” option is your friend.


3. Design / pick a pattern

At this point you can either:

  • Use the default example pattern, or
  • Design your own using the elements, mirroring, and grid settings

The wallet example I showed uses:

  • Two polygon elements
  • Different anchors to push them into interesting positions
  • A mirror pattern with a row offset to get that alternating, “twisted” feel

Once you’re happy with how it looks in the preview, you’re ready to export.


4. Download the DXF

Click Download DXF.

The backend:

  • Regenerates the pattern using your config
  • Clips it to the boundary
  • Applies the cutout(s)
  • Writes a DXF with:
    • PATTERN layer
    • BOUNDARY layer
    • CUTOUTS layer

You get a file like pattern.dxf in your downloads.

⚠️ Note about limits
Right now, new users get 5 DXF downloads included.
Compute and hosting cost money, so this lets me keep it free-ish and controlled while I see how people use it.
If you’re actually using it and need more, I’m happy to chat.


5. Back to Fusion: toolpath time

In Fusion:

  1. Create a new design or open a blank one.
  2. Insert DXF, pick a plane (top is fine), and select the downloaded pattern.dxf.
  3. Once it’s in:
    • Switch to Manufacture
    • Create a new Setup
    • Use Trace (or similar) for engraving / laser
    • Pick a suitable tool:
      • Diamond drag bit with effectively zero-width tip, or
      • A laser “virtual tool” with a very small width
  4. Select all the pattern lines for the operation.
  5. Let Fusion generate the toolpath and simulate.

You’ll see the tool/laser following the exact pattern you saw in the browser.

From there, it’s just your usual workflow: post-process, run on the machine, and enjoy.


DXF limits, costs, and what’s next

Right now:

  • The tool is free to sign up and use
  • New users get 5 DXF downloads to start with
  • I’m watching how much it gets used and what people do with it

If it turns out people genuinely find this useful, I’ll probably have to:

  • Introduce some kind of paid tier or top-ups
  • So it can at least pay for its own hosting and compute

In the meantime, if you hit the limit and you’re actually using it for real projects, just reach out – I’m very open to tweaking things for early adopters.


Want to try it or give feedback?

If you like the idea of:

  • Parametric patterns you can tweak live
  • Filling arbitrary shapes from your CAD
  • Non-destructive text / logo cutouts
  • And a DXF at the end that “just works” in your CAM tool…

…then give it a spin:

If you have suggestions, run into weird behaviour, or just want to show me what you engraved:

I’d genuinely love to see what people make with it.

Thanks for reading – and if you prefer video, don’t forget to check out the full walkthrough:

👉DXF pattern generator walkthrough video