Draw an outline
Draw the outline with line, rectangle and arc tools. Edge lengths and angles can be typed as exact values.
OpenTac-CAD lays out a piezoresistive tactile sensor on a flex PCB, for a gripper finger, a hand, a wearable or any other surface. You give it a 2D outline: draw it here, import a DXF, or unfold a surface of an STL model. It places the taxels, routes every row and column to the connector, checks the result against the design rules (DRC) and writes KiCad and Gerber files. No manual PCB layout is needed.
Each example opens in the tool and generates its board. Two of the outlines are unfolded from STL models of gripper parts. Every parameter stays editable, as for a design you draw yourself.
Surfaces of robot hands and grippers, already unfolded flat at true scale. The orange area on each model is the surface the sensor covers. After you pick one, set the cable edge and press Generate.
Draw the outline with line, rectangle and arc tools. Edge lengths and angles can be typed as exact values.
Upload a closed 2D outline as a .dxf file, for example from AutoCAD or Fusion 360. The largest closed shape in the file becomes the board outline.
Upload a 3D model of the part, select the surfaces the sensor should cover, and unfold them flat at true scale. The flat outline wraps back onto the part.
Open a ZIP downloaded from this tool. The board and its settings come back as they were, including routes moved by hand, and stay editable.
Type the size, shape and taxel pitch you want. An assistant builds the design with the same generator and loads it here for editing.
This website uses a free server that sleeps after 15 minutes without use and takes about a minute to start again. Run on your own computer, the same app starts without that wait, generates faster, and your outlines stay on your machine.
git clone it if you use git).
Start_OpenTac.bat (Windows) or
Start_OpenTac.command (Mac).
If uv is not
installed yet, it offers to install it. The first run then downloads what the app
needs, a few minutes, once. After that it starts in seconds and opens this same app
in your browser.
Mac: if double-clicking is blocked, open Terminal, type bash
(with a trailing space), drag Start_OpenTac.command onto the
window, and press Enter. On Linux, run that same command. With uv installed you can
also run uv run opentac cad from the folder.
The project includes a skill for Claude Code (Anthropic's coding agent). You describe the sensor, for example "a tactile sensor shaped like a size-9 shoe insole with the cable at the heel". It works out the dimensions, builds the outline, runs the same design pipeline on your computer and writes the manufacturing files.
claude.Useful for shapes that are easier to describe than to draw, such as an insole or a glove fingertip. It also reads DXF and STL files of a part.
Use Line, Rectangle, or Arc to draw the outline, then select the edge where the connector tail should exit and press Set cable edge (required before Generate).
Optional: this shape controls where taxels are placed inside your board — it won't change your board's outer edge or connector.
Draw an outline and press Generate PCB.
The bottom piece has a shallow pocket for the flex and the piezoresistive layer. The lid drops on and is held by a rib that runs round the perimeter, broken at intervals — every gap in the rib is a bridge that keeps the lid a single piece. Both halves stop at the cable edge, so the tail leaves through the open side.
Download ZIP includes the case (bottom and all three lids) with the settings below. The lid chosen here is marked as the primary one. Printing and fitting the parts: assembly guide.
Every design starts the same way: get a closed 2D outline into the Board Outline canvas. There are three ways to do that — mix and match, or switch mid-project using the Mode switcher.
Use the Line, Rectangle, H/V, and Arc tools to sketch your outline directly. When you're done, select the edge where the connector tail should exit and click Set cable edge (it turns orange) — Generate is blocked until this is set, so a stray first stroke can never silently become the connector edge. This isn't just freehand: select a vertex or edge and type an exact Length and Angle in the fields above the canvas to dimension it precisely, like a real CAD program.
Upload a closed 2D outline exported from AutoCAD, Fusion 360, or similar CAD tools. We automatically pick the largest closed shape in the file (in case it contains extra reference geometry) and scale it to millimeters using the file's unit metadata. A DXF outline has no inherent cable edge — confirm or change it with Set cable edge after import.
Upload a 3D model, then click a face (or several connected faces, or a smoothly curved patch) to select the surface your sensor will cover — or use Draw patch to click points directly on the surface and outline your sensor by hand, letting the app smooth away texture like tread patterns. Unfold selection flattens the result into a 2D outline using a true-scale unfolding algorithm — like unwrapping a physical piece of paper from the part. The result lands in the same Board Outline canvas, where you can still hand-edit it. Like a DXF import, an unfolded outline has no inherent cable edge — confirm or change it with Set cable edge once it loads.
If your selection spans surfaces that don't share a mesh edge (say, a fingertip's front face plus its two sides), the button changes to Join surfaces… and the viewer walks you through the join, one cut at a time: it shows numbered marker dots along each surface's boundary, and you click two matching corner pairs — "this corner attaches to that one" — for each cut. Only after every cut is resolved does the 2D preview appear, with Use this shape handing it to the outline canvas. Picking the corners yourself is deliberate: you can see the real part, so you know which corners truly touch.
Grippers come in pairs. Once you have a sensor for the left jaw, Mirror ⇆ in the drawing toolbar flips it into the right-hand version — and Mirror ⇅ flips it top-to-bottom.
The flip happens in place: the shape keeps its exact size and position, so every dimension you typed stays what it was. It moves the whole design together — outline, sensorize zone and any fold lines — so they do not come apart.
Your cable edge survives the flip. It stays the same physical edge of the shape, just on the other side, so you do not have to set it again. (Under the hood a mirror reverses which way a shape winds, which would otherwise move the connector to a different edge without any visible sign; the flip corrects for that.)
Mirror is undoable like any other edit, and mirroring twice returns you exactly where you started.
The sensorize zone is an optional second shape you can draw inside your board outline. It constrains where taxels are placed — it does not change your board's outer edge, connector, or routing bounds.
Use it when only part of your board should be sensing area — for example, leaving a clear margin around a mounting hole, or concentrating taxels on a fingertip while leaving the rest of the outline as structural board.
To use it: draw a board outline first (the toggle unlocks once you have one), switch the toolbar target to Sensorize zone, and draw a smaller shape with the same tools. It renders as a dashed green overlay so it's never confused with the board outline.
A taxel is one sensing element of the skin; the sensor is a grid of them. Most parameters are straightforward (taxel size, pitch, trace width). Two groups need more explanation: the taxel footprint (the copper of one taxel) and board sizing (four related but distinct mechanisms for making room for the wiring that connects every taxel to the connector).
The sensor grid can be specified from either end:
Each taxel is a pair of interdigitated copper electrodes — two interleaved comb-like patterns. The piezoresistive layer laid over the top bridges the fingers, so its resistance drops measurably under pressure. The live preview in the Parameters panel shows what one taxel's electrodes look like as you adjust these:
edge_clear_mm)center_clear_mm)via_drill_mm / via_dia_mm)readout_board)copper_layers)board_mode: "expand")board_mode: "fixed_keepout")After Generate, the PCB Preview toolbar lets you fine-tune the routed board:
The downloaded ZIP contains manufacturing files you can send to a PCB fab, or open in KiCad:
.kicad_pcb board file and the taxel and connector footprints.manifest.json — taxel placements and the scan matrix, for driving the sensor from a microcontroller. It also carries a design block with every setting the board was made from.design.json — the design itself, so you can reopen it here later.case/ — the printed case as STL files: the bottom, the lid with shear-sensing bumps, and the flat and hatched lids. Print the bottom and one lid. case/README.txt says which lid is the primary one and which settings were used.The case is built when you press Download ZIP, from the settings in the case panel (its defaults if you have not changed them), so the download takes a few seconds longer, more on a large board. The primary lid is the one chosen in the case panel, or the bumped lid if you have not chosen one. If the case cannot be built for your board, the ZIP downloads without it and a note under the button says why.
What to do with the files is on the OpenTac website: Order the sensor for the flex PCB, and the assembly guide from the fit check to live readings.
Keep the ZIP and you can carry on where you left off: Open in the mode switcher (or Open a saved design on the start screen) takes the ZIP back — no need to unzip it — and puts the board and every setting back on screen, including routes you moved by hand.
If the app has been updated since you downloaded it, the exact board can no longer be guaranteed, so it is rebuilt from its saved settings instead and you are told so. That rebuild reproduces the same board; only hand edits to individual routes are lost.
The sensor plugs into an OpenTac readout board, chosen under Board sizing. The 30-pin board reads up to 15 rows x 15 columns and the 60-pin board up to 30 x 30; "picked automatically" uses the 30-pin board when the grid fits it. The tail ends in the matching 0.5 mm-pitch FPC connector, 30 or 60 positions. A grid larger than 30 x 30 does not fit either board: use a larger taxel pitch or a smaller outline.
Both the ZIP (printable_1to1.pdf) and the Download printable PDF button next to it give you a full-size paper template of your board. Print it, cut it out, and hold it against the real part before you order boards — it takes a minute and catches a wrong dimension that would otherwise arrive as a batch of useless PCBs.
It draws the board's real manufactured edge, including the cable tail and connector — not the shape you drew, which is smaller. The sensor grid is printed faintly inside so you can see where the taxels land.
Print it at 100%. Print dialogs default to "Fit to page" or "Shrink to printable area", which quietly resizes the sheet by a few percent and makes the template wrong. Every page carries a 100 mm ruler: measure it with a real ruler after printing. If it is not exactly 100 mm, reprint at Actual size. The sheet size used (A4 or A3) is printed at the top — pick that size in your print dialog.
Boards too big for one sheet are split across several, with a dashed overlap line on each: trim to the dashed line and butt the next sheet against it.
A bigger connector body can be wider than the cable/tail running into it, which puts a step in the board's cut outline. That step is always rounded with a 1 mm fillet, at the connector tip and at the two inward notches where the tail meets the shoulder, so there are no sharp 90° corners to concentrate stress in the flex PCB.
The case is two 3D-printed parts: a bottom with a pocket that the sensor and its piezoresistive layer drop into, and a lid held on by a ribbed rim. No glue and no screws. Both halves stop at the cable edge, so the tail leaves through the open side.
Download ZIP includes the case in its case/ folder: the bottom and all three lids, built with the settings in the case panel (Add a printed case, under the board preview). Use that panel to change the settings, preview the parts, or download a single part.
The lid comes in three versions:
opentac cad is still open.