Skip to content

tracespace/tracespace

Repository files navigation

tracespace

Printed circuit board visualization tools for JavaScript

https://tracespace.io

Important

The tracespace project is on an ✨indefinite hiatus✨, because I (@mcous):

  • Haven't designed a PCB myself in years, so it's really hard to maintain my interest.
  • No longer think JS nor SVG are the correct tools for the job of rendering PCBs on the web.
  • Don't get paid to work on tracespace, nor do I have the energy/desire to seek out such sponsorship.

For these reasons, tracespace v5 is likely dead in the water, especially considering I've soured on the fundamental technical approach. I will not be taking tracespace v4 offline, but I will not be opening nor accepting new PRs for v5. See the main branch for the source code for the v4.

Since I'd like to jealously guard my ability to come back to this project at a future date with a wildly different approach, I am not interested in seeking new maintainers nor passing this project off to anyone else. Please fork the project if you're interested in taking tracespace forward in your own way! I'm happy to link to any forks here.

Work in progress

Welcome to tracespace v5! This version of tracespace is still in development, so documentation may not be accurate and package APIs may change without warning.

See the main branch for the current v4 release.

Packages

package description
cli version @tracespace/cli Use Gerber/drill files to create an SVG render of a finished PCB from the command line.
core version @tracespace/core Use Gerber/drill files to create an SVG render of a finished PCB in Node.js or the browser.
fixtures version @tracespace/fixtures Sample Gerber/drill files for use as test fixtures.
identify-layers version @tracespace/identify-layers Try to guess Gerber files' layer types based on filenames.
parser version @tracespace/parser Parse Gerber/drill files into abstract syntax trees.
plotter version @tracespace/plotter Plot @tracespace/parser ASTs into image trees.
renderer version @tracespace/renderer Render @tracespace/plotter image trees as SVGs
xml-id version @tracespace/xml-id XML element ID generation and sanitation utilities.

Roadmap

I work on tracespace in my free time, so this roadmap should be taken with several grains of salt. While the new version is in development, pre-production versions of libraries will be periodically released under the next tag in npm.

Issues to fix

The v5 release will attempt to fix / address the following open issues:

  • Handle disagreements between filename type vs parsed type (#49)
  • Reduce number of <use> tags in SVG output (#80)
  • Arc plotting should be more lenient (#82)
  • Operation with non-existent tool should no-op with a warning (#83)
  • Fails to detect units if format spec combined with units spec (#234)
  • clipPath for outline breaks in Firefox if outline has clear layers (#302)
  • gerberParser.parseSync clobbers filetype option (#306)
  • Gerber file starting with newline incorrectly identified as drill file (#307)
  • Generate consistent document size for all layers. (#324)
  • G93 code in drill file rendered as drilled hole (#353)
  • Allow soldermask layer to cover vias in board render (#399)

tracespace in the wild

  • tracespace.io/view - A Gerber viewer powered by the tracespace libraries
  • kitspace.org - An electronics project sharing site with links to easily buy the required parts
  • OpenHardware.io - A social site around open source hardware. Enables authors to sell and manufacture their boards.

About

⚡️generate beautiful and accurate SVG renders of printed circuit boards

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project