Skip to content

feat(ipc): render the finished board - #1310

Merged
akhilles merged 5 commits into
mainfrom
ipc-composite-render
Sep 22, 2026
Merged

akhilles merged 5 commits into
mainfrom
ipc-composite-render

Conversation

@akhilles

@akhilles akhilles commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

pcb ipc render now draws a realistic view of a board, board array or fab panel — top and bottom side by side, or one with --side: outer copper under a translucent mask, the finish in its openings, the legend, and holes and routed material cut through. Colours come from each side's stackup inks, and SVG, PNG and terminal output all work.

image

`pcb ipc render --side top|bottom` draws a board, board array or fab
panel as it looks from outside: outer copper under a translucent mask,
the surface finish in the mask's openings, the legend clipped to the
mask, holes, slots and routed material cut through, and V-score grooves.
Everything beneath the outer copper and every non-physical layer is left
out, and the bottom is mirrored as the board looks turned over.

The view is ordinary artwork over one shared document, so the existing
SVG, PNG and terminal backends draw it. Mask, legend and finish colours
come from the stackup; the rest of the palette is neutral greys, so
traces read by brightness under a mask of any colour.
devin-ai-integration[bot]

This comment was marked as resolved.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Left a non-blocking comment; reviewers were not assigned. This is a functional user-facing IPC render feature rather than a small fixup, so it still needs human review. Cursor Security Agent passed with no security findings; Bugbot was not running on this PR.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

Everything that is not board is now one more cut, shared by every layer:
artwork hanging over the profile or crossing a profile cutout no longer
shows, and the view frames the board rather than whatever reaches past
it. With cuts that clear on any layer, the stack is always the same six
layers and takes no branches for a side without a legend, scores or a
mask.

Each side's mask and legend ink comes from its own stackup layer. The
stackup summary selects its first inks from the same lookup.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Left a non-blocking comment; reviewers were not assigned. This is a functional user-facing IPC render feature rather than a small fixup, so it still needs human review. Cursor Bugbot and Cursor Security Agent were not running on this head after the first poll.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

devin-ai-integration[bot]

This comment was marked as resolved.

`pcb ipc render` with neither `--layer` nor `--side` draws the top and
the bottom side by side. Every side is the same stack under its own
placement, the bottom turned over in the geometry itself, so the
mirrored render option is gone and one, the other or both sides are one
path.

A side without a mask layer is bare rather than masked all over; a mask
layer that opens nothing still masks the whole side.
@akhilles akhilles changed the title feat(ipc): render the finished board from one side feat(ipc): render the finished board Sep 22, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Left a non-blocking comment; reviewers were not assigned. This is a functional user-facing IPC render feature rather than a small fixup, so it still needs human review. Cursor Bugbot and Cursor Security Agent were not running on this head after the first poll.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

devin-ai-integration[bot]

This comment was marked as resolved.

An inline image was capped at 1200 px however large or dense the window,
about a third of a Retina terminal's width. It now fits the window's own
pixels, as the terminal reports them: its full width and two thirds of
its height at most.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Left a non-blocking comment; reviewers were not assigned. This is a functional user-facing IPC render feature rather than a small fixup, so it still needs human review. Cursor Bugbot and Cursor Security Agent were not running on this head after the first poll.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

devin-ai-integration[bot]

This comment was marked as resolved.

@akhilles
akhilles requested a review from LK September 22, 2026 05:08
A drill span that names one end reached both surfaces. The end it leaves
out is now the top's, then the bottom's, as the importer reads a slot's,
so a hole opens only onto the sides its span ends at.

A render fitted within a box could land a rounding error past the edge
that binds and come out a pixel over; it is clamped to the box.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a non-blocking comment; reviewers were not assigned. This is a functional user-facing IPC render feature rather than a small fixup, so it still needs human review. Cursor Bugbot and Cursor Security Agent were not running on this head after the first poll.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

@akhilles
akhilles merged commit f8d20b6 into main Sep 22, 2026
13 checks passed
@akhilles
akhilles deleted the ipc-composite-render branch September 22, 2026 15:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant