Skip to content

Releases: nvrooijen/KiLeidoscope

KiLeidoscope 0.5.3

Choose a tag to compare

@nvrooijen nvrooijen released this 19 Oct 13:00
47a3fe6

Realistic solder: the paste as it flows after reflow, up each part's leads and through every plated hole with a pin in it. Plus a tombstone check in the DRC column, with the parts at risk standing up on the board.

New

  • Reflowed solder. A Reflowed toggle under Solder paste (on by default) draws each stencil aperture's solder as a fillet that climbs the metal above it (KiCad library models by their lead colours, a parts pack's contacts) and holds the solder the stencil prints there; a pad with no known metal over it gets a dome. A plated hole with a part's pin in it gets a filled barrel and a fillet on each side, and the cut plane shows the barrel filled. A live edit rebuilds only the solder it reached. With Reflowed off, the printed paste is drawn as KiCad's 3D viewer does: the pad shape at stencil thickness.
  • Tombstone check in the DRC column: every 01005, 0201 and 0402 on the board checked, from KiCad's data alone, for what makes one end melt or pull before the other: an open via in a pad, one pad tied into a plane against a pad on a trace, paste on one pad only or unequal, a low stencil area ratio, oversized pads, pads too far apart. The parts at risk are listed next to KiCad's DRC with the end that would lift and a fix per factor, with confirm, dismiss and select-in-KiCad. The thresholds and the measurements they rest on are in the guide.
  • Lifted parts. Every listed part stands lifted off its pads as it would after reflow, turning about the end that melts first, steeper at high risk; untick Lifted parts to see them as placed. A new lift drawing in the findings file format does the same for an LLM's findings.
  • The DRC column's three buttons sit one per row.
  • See the DRC guide.

Install

Needs KiCad 10 and Blender 5.1 or newer.

  1. Download kileidoscope-0.5.3.zip below.
  2. In KiCad, under Preferences > Plugins, turn on Enable KiCad API and set Python interpreter to KiCad 10's own: C:\Program Files\KiCad\10.0\bin\pythonw.exe on Windows, the system /usr/bin/python3 on Linux.
  3. Open the Plugin and Content Manager, choose Install from File… and pick the zip. Updating from an earlier version: uninstall it there first, then install the new zip.
  4. Restart KiCad. Open in Blender appears on the PCB Editor toolbar.

KiLeidoscope 0.5.2

Choose a tag to compare

@nvrooijen nvrooijen released this 18 Oct 20:33
a811c5b

Dynamic phase: how far a differential pair's P and N are apart in time at every point along the pair, live as you route, from KiCad's own tuning profiles. Plus a fix for castellated edges on flex boards.

New

  • Diff pairs tab (pink): every differential pair on the board, walked from one end to the other with the delays of its netclass's tuning profile in KiCad (Board Setup > Tuning Profiles), so its end-to-end skew is KiCad's. What it adds is where along the pair the skew is made and undone: a bend near one end that is only compensated at the far end leaves P and N apart over everything between, and that stretch carries common mode.
  • On the 3D board: each trace tinted red or blue where its side is ahead, pulses that start together and travel at each side's own delay, light in the via barrels, and the stretches where P and N stay more than your tolerance apart for at least your minimum length drawn in amber along both traces, labelled with their peak and length (+2.8 ps over 5.3 mm).
  • Pair list: every pair with its total delay, end-to-end skew and largest Δt; SHORT where P touches N, a marker on a loop of leftover copper, and NO PROFILE for a pair KiCad has no delay for. Pairs chain through AC-coupling caps.
  • Δt chart: Export chart (SVG) writes one plot per pair on one scale, with the numbers in the SVG and a CSV beside it.
  • In the DRC tab: a Dynamic phase button lists every pair's out-of-phase stretches, shorts, loops and unfinished sides as findings next to KiCad's DRC, with their copper lit on the board and select-in-KiCad.
  • See the dynamic phase guide.

Fixed

  • Castellated edges on a flex board open as they should: a drill on the edge of the polyimide no longer stays covered by amber film with a band along the edge. A hole through polyimide or coverlay now shows what lies behind it, and a castellation on an FR4 board no longer shows a see-through band across it.

Install

Needs KiCad 10 and Blender 5.1 or newer. Dynamic phase needs a tuning profile on the pair's netclass in KiCad.

  1. Download kileidoscope-0.5.2.zip below.
  2. In KiCad, under Preferences > Plugins, turn on Enable KiCad API and set Python interpreter to KiCad 10's own: C:\Program Files\KiCad\10.0\bin\pythonw.exe on Windows, the system /usr/bin/python3 on Linux.
  3. Open the Plugin and Content Manager, choose Install from File… and pick the zip. Updating from an earlier version: uninstall it there first, then install the new zip.
  4. Restart KiCad. Open in Blender appears on the PCB Editor toolbar.

KiLeidoscope 0.5.1

Choose a tag to compare

@nvrooijen nvrooijen released this 16 Oct 07:48
eff33c0

Two review columns on the 3D board: KiCad's own DRC, and an LLM's review of your layout, drawn where it is and measured again on the live board.

New

  • DRC tab (red): run KiCad's design rule check from the sidebar on the board as it is open in KiCad, unsaved edits included, with your rules and exclusions. The findings are listed by check; click one to see it drawn on the 3D board: the items lit, the gap measured against its limit, a hole problem cut open in section with both barrels, and a marker per finding on the board. Confirm and dismiss marks survive new runs. See the DRC guide.
  • LLM tab (purple): a review by the LLM tool you already use. Copy prompt freezes the board into the project's .kileidoscope folder with a digest and a request listing the checks you ticked (65 named checks in ten groups; presets Quick, Measured and All), and puts one prompt on the clipboard. Paste it into Claude Code, Codex or any tool that reads and writes files; its answer lands in the column as soon as it is written, with how far it is while it works.
  • Every claim measured, every finding judged. The bridge finds every part, pad, net, via and track the LLM names on the live board, measures distances, clearances, widths, routed lengths, plane gaps, return paths, return vias, plane islands, stitching, via stubs and stackup distances, and gives each finding a verdict: measured, refuted, mismatch or unchecked. A value the LLM claims that differs from the one measured is shown with both.
  • Suggestions drawn and checked. A via, a pad, a cap, a part moved, a route or a row of vias the LLM suggests is drawn as a translucent ghost where it put it, checked to fit, and then checked by KiCad's own DRC on a copy of the board with the ghosts written in.
  • Privacy basics. Nothing in KiLeidoscope talks to an LLM: no account, no API key, no network. The board copy the LLM gets loses its title block, text variables, schematic sheet names and local file paths.
  • See the LLM review guide.

Install

Needs KiCad 10 and Blender 5.1 or newer. The DRC and LLM tabs use the kicad-cli that comes with KiCad.

  1. Download kileidoscope-0.5.1.zip below.
  2. In KiCad, under Preferences > Plugins, turn on Enable KiCad API and set Python interpreter to KiCad 10's own: C:\Program Files\KiCad\10.0\bin\pythonw.exe on Windows, the system /usr/bin/python3 on Linux.
  3. Open the Plugin and Content Manager, choose Install from File… and pick the zip. Updating from an earlier version: uninstall it there first, then install the new zip.
  4. Restart KiCad. Open in Blender appears on the PCB Editor toolbar.

KiLeidoscope 0.4.5

Choose a tag to compare

@nvrooijen nvrooijen released this 09 Oct 11:26

A Studio tab for the picture, assembly variants followed live, a clickable board list, and copper that stops at the board's edge.

New

  • Studio tab (left edge of the sidebar, above IMS): everything about how the picture looks, nothing about the board. Background is one colour, a gradient, or none for transparent renders; lights and reflections are not affected. Frame camera places a camera that sees every board from the direction you are looking and looks through it, so F12 renders what you saw. Show camera and lights lets you select and move the softboxes and the camera; a moved light stays where you put it until Reset lights. Light strength, fill colour and Reflections moved here from the main panel. The panel header shows the version.
  • Assembly variants (KiCad 10): switching the variant in the PCB Editor updates Blender live. Parts the variant marks Do not populate are hidden by the DNP eye, and the Boards row names the variant.
  • Boards list: with imported boards present, the Boards section is a list. Click a row to see that board's layers, use its arrow to select the board for moving, its eye to hide it, and the cross to remove it.
  • Copper clipped to the board outline: copper, vias, plating, solder and highlights drawn past Edge.Cuts are see-through, as a fab mills them away. Castellations show as plated half holes with a cut copper face on the edge. The cut plane's section is clipped the same way.
  • For add-on authors: a stable studio hook (kileido.studio) gives other Blender add-ons the board's size, when edits from KiCad have settled, the same camera framing as Frame camera, and a way to take the lighting over. See docs/studio-hook.md.

Fixed

  • A board whose outline is drawn inside a footprint (a multi-board alignment technique) no longer reports "Board outline is missing or malformed"; board and footprint Edge.Cuts build the outline together.
  • A through-hole pad KiCad still reports as the SMD pad it used to be gets its shape and hole from its own padstack.
  • A saved scene keeps its board and copper opaque when reopened.

Install

Needs KiCad 10 and Blender 5.1 or newer.

  1. Download kileidoscope-0.4.5.zip below.
  2. In KiCad, under Preferences > Plugins, turn on Enable KiCad API and set Python interpreter to KiCad 10's own: C:\Program Files\KiCad\10.0\bin\pythonw.exe on Windows, the system /usr/bin/python3 on Linux.
  3. Open the Plugin and Content Manager, choose Install from File… and pick the zip. Updating from an earlier version: uninstall it there first, then install the new zip.
  4. Restart KiCad. Open in Blender appears on the PCB Editor toolbar.

KiLeidoscope 0.4.4

Choose a tag to compare

@nvrooijen nvrooijen released this 06 Oct 14:37
cb2aa03

Fixes for KiCad 10.0.6, parts that sit on their pads, and a tidier component list. Thanks to everyone who reported the reloading!

Fixed

  • Blender no longer reloads the board over and over while KiCad 10.0.6 is open. KiCad 10.0.6 sends the colour of the stackup's dielectric layers as random values that change on every read, so KiLeidoscope took the stackup as changed and sent the whole board again about once a second. Those colours are now ignored (KiLeidoscope never used them); a real stackup change still updates Blender.
  • 3D models sit on the copper, top and bottom. KiCad's 3D export lifts every model a little off the board, so top parts hovered just above their pads and bottom parts hung below theirs. Boards saved with an earlier version are corrected on their next update.

New

  • DNP components: a new eye in the Layers panel's Objects box hides the parts KiCad marks Do not populate (their 3D models and missing-model boxes; the pads stay). It is on by default and follows the flag live.
  • Component tree: parts in the Outliner are named as in KiCad: R12 for the part, R12 · R_0603_1608Metric for its model, and R12 · R_0603_1608Metric (box) for its stand-in box. Each part is one row, with its model and box under it, and they move and fold with the part. Older saved files get the new names on their next update.

Install

Needs KiCad 10 and Blender 5.1 or newer.

  1. Download kileidoscope-0.4.4.zip below.
  2. In KiCad, under Preferences > Plugins, turn on Enable KiCad API and set Python interpreter to KiCad 10's own: C:\Program Files\KiCad\10.0\bin\pythonw.exe on Windows, the system /usr/bin/python3 on Linux.
  3. Open the Plugin and Content Manager, choose Install from File… and pick the zip. Updating from an earlier version: uninstall it there first, then install the new zip.
  4. Restart KiCad. Open in Blender appears on the PCB Editor toolbar.

KiLeidoscope 0.4.3

Choose a tag to compare

@nvrooijen nvrooijen released this 05 Oct 07:38
4fe8777

Better visibility inside the cut, and depth in the Board stackup and PCB Editor colours. Thanks to the user who asked for it!

Cut plane guide: docs/cut-plane.md.

New

Seeing into the cut

  • Section face, a new button under the cut plane controls, hides the cross section so you can look into the cut board itself. Hide Board under Layers as well to see the copper and vias inside.
  • Cut light shines into the cut from the removed side, straight along the plane. It follows the plane when you move or flip it, and is as strong as the Light setting.

Shaded colours

  • Board stackup and PCB Editor colours are no longer flat: the studio lights (and the cut light) now shade them, with shadows, so vias, rings and edges show their depth. A face lit straight on keeps KiCad's exact colour.
  • The button next to Colors switches back to the flat look.

Fixed

  • After an undo in Blender, the next full update from KiCad rebuilds the board by itself, without an error and a second resync.

Install

Needs KiCad 10 and Blender 5.1 or newer.

  1. Download kileidoscope-0.4.3.zip below.
  2. In KiCad, under Preferences > Plugins, turn on Enable KiCad API and set Python interpreter to KiCad 10's own: C:\Program Files\KiCad\10.0\bin\pythonw.exe on Windows, the system /usr/bin/python3 on Linux.
  3. Open the Plugin and Content Manager, choose Install from File… and pick the zip. Updating from an earlier version: uninstall it there first, then install the new zip.
  4. Restart KiCad. Open in Blender appears on the PCB Editor toolbar.

KiLeidoscope 0.4.2

Choose a tag to compare

@nvrooijen nvrooijen released this 04 Oct 13:43
10867f8

Fold flex and rigid-flex boards from a few marks drawn in KiCad: bends, twists, cones, wraps and domes, with the stiffeners, the coverlay and the parts, and flex checks that follow your routing. Beta.

Full guide, known limitations and disclaimer: docs/flex.md.

New

Flex mode (beta)

  • Name three user layers Flex, Bend and Stiffener and give the stack-up a polyimide dielectric; KiLeidoscope finds the flex from that. A line on the Bend layer with a text such as 90° R2 #1 is a bend; twist 90° a twist; a closed shape a bend drawn as its area, or a cone when its sides converge; wrap -360° closes the board into a cone; dome R25 curls a row of fingers. A closed shape on the Stiffener layer with steel 0.3 mm top is a stiffener, with holes where the board has them. Texts are read forgivingly, and what they leave out gets a default the panel tells you about.
  • The board folds in Blender through folded copies bent in Geometry Nodes: a Fold slider, a step list (#1, #2, ...) and a handle per bend to turn by hand. Key fold animation puts the fold on the timeline for rendering. The folded board works with X-ray mode, net highlighting, clicking to select in KiCad and the cut plane.
  • The flex is drawn thin, in amber polyimide with a coverlay in amber, black or white (Coverlay black on the Flex layer), and stiffeners as polyimide, laminate or metal solids.
  • Flex checks, live while you route: traces crossing a bend off square, vias, pads and parts on a bend, copper on layers the flex does not have, bend radius against the flex's thickness for static or dynamic use, sharp inside corners, stacked traces, solid pours across a bend, stiffeners in bends, and the folded board running into itself. A click on a check selects its items in KiCad.
  • KiCad stays the source of truth: nothing in Blender writes to the board. Each mark in the panel has a button that copies its full text, to paste back into KiCad.
  • Two KiCad project templates in templates/, a pure flex and a rigid-flex board, with the stack-up, the named layers, flex design rules and a cheat sheet of every mark beside the board.
  • IMS mode and flex mode each have a bookmark tab on the left edge of the KiLeidoscope sidebar, opening their own column.

Hatched fills

  • KiCad 10 shapes filled with a hatch or cross-hatch are drawn with KiCad's own hatch, computed by KiCad's Python. Without it, a hatched shape is drawn as its outline.

Good to know

  • Flex mode is a beta: expect rough edges, and please report what you find. It is an illustration built from your design data, not a fabrication drawing or a mechanical simulation of your flex; bend radii, stiffeners, coverlay and the stack-up are for you and your fab to confirm. See the disclaimer in the guide.
  • Overlapping bends fold together only as a bend and a twist across the same tail. The collision check looks at the end of each step and leaves out parts. Semi-flex boards are not supported. Flex and IMS mode cannot be on together.
  • KiCad 10.0.0 to 10.0.5 leave hatched fills out of kicad-cli plots, Gerbers included (KiCad issue #25177); check your Gerbers before you order.

Install

Needs KiCad 10 and Blender 5.1 or newer.

  1. Download kileidoscope-0.4.2.zip below.
  2. In KiCad, under Preferences > Plugins, turn on Enable KiCad API and set Python interpreter to KiCad 10's own: C:\Program Files\KiCad\10.0\bin\pythonw.exe on Windows, the system /usr/bin/python3 on Linux.
  3. Open the Plugin and Content Manager, choose Install from File… and pick the zip. Updating from an earlier version: uninstall it there first, then install the new zip.
  4. Restart KiCad. Open in Blender appears on the PCB Editor toolbar.

KiLeidoscope 0.4.1

Choose a tag to compare

@nvrooijen nvrooijen released this 03 Oct 15:27
731d789

Show a 2-layer board as the insulated metal substrate (IMS) board it will be built as: an aluminum or copper base under a thin epoxy, in 3D and in the cut plane's cross section.

Full guide, known limitations and disclaimer: docs/ims.md.

New

IMS mode

  • IMS (metal base) in the Boards panel, for 2-layer boards. KiCad has no IMS setting, so the board stays the 2-layer file you order by metal and thickness ("aluminum, 1.6 mm"). KiLeidoscope keeps that thickness, draws the thermal epoxy under F.Cu and fills the rest with the metal base in B.Cu's place.
  • Pick Aluminum or Copper, a Finish (mill, brushed, polished or nickel plated) and the Epoxy thickness (75 to 150 µm). The panel shows the base's thickness, F.Cu's copper and the board's total, which stays KiCad's.
  • The cross section shows the base as polished metal under a plain epoxy band. Unplated mounting holes run through the base with bare metal walls; cutouts go through it too.
  • The bottom layers, bottom-side components and bottom paste are hidden under the base and leave the Layers list.
  • The panel warns about what an IMS board cannot have: vias and plated holes, which would short to the base, and copper of B.Cu's own. One pour over the whole board stands for the base and is not warned about. The warnings follow edits in KiCad.
  • Exported boards keep their base, metal and finish, and come back as IMS boards next to any other board.

Good to know

  • IMS mode is an illustration from your design data and the panel's values, not a fabrication drawing or a manufacturability check. Which metals, thicknesses and epoxies your fab offers is for you and them to confirm. See the disclaimer in the guide.
  • The setting is one for the live board: it stays on for the next 2-layer board you open, until you untick it. On a board with more layers the switch is greyed out.
  • Nothing is computed about heat yet, and the reference-plane and phase tools do not treat the base as the reference plane under F.Cu.

Install

Needs KiCad 10 and Blender 5.1 or newer.

  1. Download kileidoscope-0.4.1.zip below.
  2. In KiCad, under Preferences > Plugins, turn on Enable KiCad API and set Python interpreter to KiCad 10's own: C:\Program Files\KiCad\10.0\bin\pythonw.exe on Windows, the system /usr/bin/python3 on Linux.
  3. Open the Plugin and Content Manager, choose Install from File… and pick the zip. Updating from an earlier version: uninstall it there first, then install the new zip.
  4. Restart KiCad. Open in Blender appears on the PCB Editor toolbar.

KiLeidoscope 0.4.0

Choose a tag to compare

@nvrooijen nvrooijen released this 02 Oct 13:30
80bfad8

Cut the live board open along a movable plane and look at its cross section, with every via drawn the way KiCad has it set: tented, plugged, filled, capped, blind or buried.

Full guide, known limitations and disclaimer: docs/cut-plane.md.

New

Cut plane

  • Cut plane in the panel opens the board along an upright plane and draws the cross section on it: the stackup's laminate bands with a woven-glass texture, every copper layer at its stackup thickness, vias, pad holes and a plated board edge.
  • The plane is an ordinary object. Click its wireframe to select it, then move it or turn it about Z; X, Y, Reset and Flip are in the panel. The section follows live edits in KiCad.
  • Works with X-ray mode and the Layers eyes. In Realistic colours the cut copper is polished metal, and the board's routed edges show the stackup bands and the weave.

Via protection, from KiCad

  • Each via is drawn as KiCad stores it (Protection features, per via or from the board's defaults): open, tented or covered, plugged with solder mask ink, filled, capped, in 3D and in the cross section.
  • Blind vias are holes on one side and end on a flat inner land. Buried vias are resin-filled.
  • Annular rings follow KiCad's Annular rings setting per via, including "connected layers only". Inner rings show in 3D with the board hidden or in X-ray mode.
  • Three panel settings supply what KiCad does not store: Via fill (resin or copper), Max tent hole and Via wall (plating thickness). Vias that KiCad tents over a hole too large to tent are shown open and counted in the panel.

Plated board edge

  • With Plated board edge set in KiCad's Board Setup, the board's wall is plated where copper on both outer layers reaches the edge, in 3D and in the cross section.

Changed

  • The panel's Via fill (capped vias) tick box is gone. Whether a via is filled or capped now comes from KiCad, per via.
  • Outer copper is a closed solid and shows as bare copper from inside the board, so a board with its Board layer hidden or cut open looks right from every side.
  • A click selects only on the side of the cut that is shown.

Fixed

  • A project in a folder with a dot in its name (ecc83v1.2) was treated as never saved: ${KIPRJMOD} 3D models were not found and the saved board's colours and finish were missing. (#13)
  • After an undo in KiCad, pads of the undone footprint were drawn in the wrong place or on the wrong side, and a selected component's box stayed behind. (#14)
  • A Blender undo or file load that freed the board's collection left the add-on holding it. The board state now starts over and the bridge resends the board; Blender's output also says what changed model bindings. (#15)
  • A 3D model with a single part now binds to its footprint. (#12, thanks @jgeertsema)

Good to know

  • The cross section is an illustration, not a micrograph or a fabrication drawing. Plating, cap and tent dimensions are assumptions where KiCad stores none. See the limitations and disclaimer in the guide.
  • Saved .blend files from before pick up rebuilt copper and via node groups the next time the board loads.

Install

Needs KiCad 10 and Blender 5.1 or newer.

  1. Download kileidoscope-0.4.0.zip below.
  2. In KiCad, under Preferences > Plugins, turn on Enable KiCad API and set Python interpreter to KiCad 10's own: C:\Program Files\KiCad\10.0\bin\pythonw.exe on Windows, the system /usr/bin/python3 on Linux.
  3. Open the Plugin and Content Manager, choose Install from File… and pick the zip. Updating from an earlier version: uninstall it there first, then install the new zip.
  4. Restart KiCad. Open in Blender appears on the PCB Editor toolbar.

KiLeidoscope 0.3.7

Choose a tag to compare

@nvrooijen nvrooijen released this 30 Sep 10:41

Bug fix release.

Fixed

  • 3D models for a board KiCad reports no saved path for. Before, the KiLeidoscope panel said 3D models unavailable: board file path missing from snapshot and no models loaded. Now the models (and the mask and silkscreen overlays) load from the live copy of the open board. If there is neither a live copy nor a saved board, the panel says 3D models unavailable: save the board in KiCad, then press Resync. Models with a project-relative path (${KIPRJMOD}) cannot be found for a board without a saved path; the standard KiCad library models are.
  • Restarting KiCad. The bridge no longer retries a refused KiCad token forever. It waits for you to press Resync, then follows the new KiCad.
  • The Resync button is now always in the Status panel while connected.

Install

Needs KiCad 10 and Blender 5.1 or newer.

  1. Download kileidoscope-0.3.7.zip below.
  2. In KiCad, under Preferences > Plugins, turn on Enable KiCad API and set Python interpreter to KiCad 10's own: C:\Program Files\KiCad\10.0\bin\pythonw.exe on Windows, the system /usr/bin/python3 on Linux.
  3. Open the Plugin and Content Manager, choose Install from File… and pick the zip. Updating from an earlier version: uninstall it there first, then install the new zip.
  4. Restart KiCad. Open in Blender appears on the PCB Editor toolbar.