<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[tscircuit: Dev Streams]]></title><description><![CDATA[tscircuit development streams, watch the dev team build tscircuit!]]></description><link>https://blog.tscircuit.com/s/devstreams</link><image><url>https://substackcdn.com/image/fetch/$s_!-AOr!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36a71573-6616-468e-bca4-830d84fb3572_612x612.png</url><title>tscircuit: Dev Streams</title><link>https://blog.tscircuit.com/s/devstreams</link></image><generator>Substack</generator><lastBuildDate>Wed, 29 Apr 2026 19:49:01 GMT</lastBuildDate><atom:link href="https://blog.tscircuit.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[tscircuit]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[substack@tscircuit.com]]></webMaster><itunes:owner><itunes:email><![CDATA[substack@tscircuit.com]]></itunes:email><itunes:name><![CDATA[Seve Ibarluzea]]></itunes:name></itunes:owner><itunes:author><![CDATA[Seve Ibarluzea]]></itunes:author><googleplay:owner><![CDATA[substack@tscircuit.com]]></googleplay:owner><googleplay:email><![CDATA[substack@tscircuit.com]]></googleplay:email><googleplay:author><![CDATA[Seve Ibarluzea]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Fixing Schematic Crossings & Adding BOM View to Snippets]]></title><description><![CDATA[Wire crossing bug hunting, Component interface improvements, and new BOM features]]></description><link>https://blog.tscircuit.com/p/fixing-schematic-crossings-and-adding</link><guid isPermaLink="false">https://blog.tscircuit.com/p/fixing-schematic-crossings-and-adding</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Sun, 17 Nov 2024 00:00:03 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/151759847/a66631dbf2d48aae316223228f31ca1b.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Seve tackles two major tasks: fixing incorrect schematic wire crossings and adding a bill of materials view to the snippets interface. After spending 2 hours trying to fix crossing rendering issues (ultimately putting a $50 bounty on the complete fix), he shifts focus to improving the snippets UI. He implements a new dropdown menu system that houses the BOM view, circuit JSON, and error display, using the more modern horizontal ellipsis (&#8943;) instead of a hamburger menu. The BOM implementation includes clickable JLCPCB part numbers and a clean tabular layout. Throughout the stream, Seve demonstrates his workflow using AI assistance for code generation while maintaining high standards for UX details like consistent spacing, dropdown behavior, and error indication. Notable discussion topics include proper junction rendering, wire crossing edge cases, and the evolution of menu icons in modern web interfaces.</p>]]></content:encoded></item><item><title><![CDATA[Getting Started with tscircuit Core, Props and Circuit Json]]></title><description><![CDATA[Adding Battery Component to TSCircuit: A Deep Dive into Core, Props, and CircuitJSON]]></description><link>https://blog.tscircuit.com/p/getting-started-with-tscircuit-core</link><guid isPermaLink="false">https://blog.tscircuit.com/p/getting-started-with-tscircuit-core</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Thu, 17 Oct 2024 18:08:11 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/150365414/cddbb6ac57cec7af33985e0b88f3b63d.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this episode, Seve walks through the process of adding a battery component to TSCircuit. He demonstrates the intricate dance between the Core, Props, and CircuitJSON repositories, showcasing how to properly implement and integrate a new component across all three.</p><ul><li><p><strong>00:00:00</strong> - Introduction and overview of TS Circuit Core.</p></li><li><p><strong>00:00:35</strong> - Explanation of the task: Adding battery support to TS Circuit.</p></li><li><p><strong>00:01:20</strong> - Writing tests in TS Circuit Core.</p></li><li><p><strong>00:02:06</strong> - Snapshot and schematic test creation.</p></li><li><p><strong>00:03:39</strong> - Choosing component footprints (discussion about Axial and 0805).</p></li><li><p><strong>00:04:54</strong> - Debugging: Unsupported component type (battery).</p></li><li><p><strong>00:05:32</strong> - Creating a new battery component file.</p></li><li><p><strong>00:06:17</strong> - Debugging missing types and switching imports to CircuitJSON.</p></li><li><p><strong>00:08:00</strong> - Discussion of component definitions and TS Circuit Props.</p></li><li><p><strong>00:10:12</strong> - Registering the battery component in the JSX intrinsic file.</p></li><li><p><strong>00:12:58</strong> - Adding and testing schematic snapshot.</p></li><li><p><strong>00:17:09</strong> - Snapshot test failures and debugging.</p></li><li><p><strong>00:19:00</strong> - Overview of the TS Circuit Core architecture and render phases.</p></li><li><p><strong>00:21:00</strong> - Jumping to Props Repo to define battery-related properties.</p></li><li><p><strong>00:27:12</strong> - Implementing the battery in CircuitJSON.</p></li><li><p><strong>00:32:05</strong> - Fixing type and barrel export issues.</p></li><li><p><strong>00:36:10</strong> - Merging PR and handling dependencies.</p></li><li><p><strong>00:40:07</strong> - Debugging schematic rendering and snapshot tests.</p></li><li><p><strong>00:50:02</strong> - Conclusion and final comments on snapshot and battery integration.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[tscircuit Snippets - Save functionality, navigation improvements, and UI tweaks for the AI chat interface]]></title><description><![CDATA[AI-Powered Circuit Design: Enhancing the TS Circuit AI UI]]></description><link>https://blog.tscircuit.com/p/tscircuit-snippets-save-functionality</link><guid isPermaLink="false">https://blog.tscircuit.com/p/tscircuit-snippets-save-functionality</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Sun, 06 Oct 2024 03:01:36 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/149864014/dbf988ae440d5064c8a5f8cf44e938b3.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Seve focuses on improving the AI-powered circuit design interface for TS Circuit. He implements the save snippet functionality, adds an "Edit with AI" button to the editor, and creates a new snippet link component for consistent styling. Seve also tackles UI challenges like repositioning toast notifications and refining button styles. He discusses the "select an expert" pattern for AI prompts and plans for benchmarking prompt effectiveness. The stream concludes with Seve spending $0.09 on AI usage and contemplating future improvements, including custom keyboard design using the tool.</p>]]></content:encoded></item><item><title><![CDATA[Build 3d Electronics Models with React - Introduction to jscad-electronics and jscad-fiber]]></title><description><![CDATA[Bending Wires and Breaking Barriers: Implementing Axial Resistors with JSCAD Fiber]]></description><link>https://blog.tscircuit.com/p/build-3d-electronics-models-with</link><guid isPermaLink="false">https://blog.tscircuit.com/p/build-3d-electronics-models-with</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Fri, 04 Oct 2024 06:05:28 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/149794075/d1824fa0c80ee47f741d00e633b41336.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this deep-dive episode, Seve tackles the implementation of an axial resistor model for the TSCircuit JSCAD Electronics library. Watch as he navigates through multiple repositories, enhancing JSCAD Fiber with new features like extrude-from-slices and rotation support for cylinders. Seve demonstrates real-time problem-solving, from debugging type errors to refining 3D geometries. Highlights include creating a parameterized resistor model that adapts to different pin distances, and a candid discussion on balancing perfection with pragmatic development. This episode offers invaluable insights into open-source contribution workflows and the intricacies of 3D electronic component modeling.</p>]]></content:encoded></item><item><title><![CDATA[Unboxing the first React Custom Keyboard]]></title><description><![CDATA[Seve encounters unexpected challenges with his JLC-manufactured tscircuit keyboard]]></description><link>https://blog.tscircuit.com/p/unboxing-the-first-react-custom-keyboard</link><guid isPermaLink="false">https://blog.tscircuit.com/p/unboxing-the-first-react-custom-keyboard</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Thu, 03 Oct 2024 18:25:50 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/149772982/58be88f106fbedba614a9ac14079b20f.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>this unboxing stream, Seve inspects the custom keyboard PCB he ordered from JLC about a week ago. He discovers several issues with the board, including missing diodes, insufficient copper pads around plated holes for the Arduino Pro, and incorrectly sized holes for the key switches. Seve demonstrates the problems using a close-up camera view and discusses the necessary adjustments for future iterations. Despite the setbacks, he tests fitting keycaps onto switches and explains the components of a mechanical keyboard. This episode highlights the iterative nature of PCB design and manufacture, providing valuable insights for tscircuit enthusiasts following Seve's keyboard project.</p>]]></content:encoded></item><item><title><![CDATA[3D Component Rendering Marathon: Fixing DIP Packages and Footprint Strings]]></title><description><![CDATA[Seve battles coordinate flips, SVG paths, and JS-CAD integrations]]></description><link>https://blog.tscircuit.com/p/3d-component-rendering-marathon-fixing</link><guid isPermaLink="false">https://blog.tscircuit.com/p/3d-component-rendering-marathon-fixing</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Wed, 02 Oct 2024 22:11:20 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/149713461/1e3006d782dcef0ee1f4d61bfde6a10a.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this marathon 6-hour stream, Seve dives deep into improving 3D component rendering for TS Circuit. He spends a significant portion tackling issues with the DIP (Dual Inline Package) component, meticulously adjusting its geometry and struggling with coordinate system inconsistencies. Seve also extends footprint string support, adding implementations for 0402, 0603, and 0805 components.</p><p>The stream showcases the challenges of integrating multiple libraries, with Seve navigating between JS-CAD, Three.js, and custom React reconcilers. He encounters and fixes numerous rotation and positioning bugs across different component types. Viewers get an inside look at the iterative process of tweaking 3D models, including a detailed session on crafting the curved leads for the DIP package using expanded SVG strokes.</p><p>Seve also touches on project maintenance, updating dependencies, fixing CI/CD pipelines, and improving documentation. The stream concludes with a payoff as Seve finally gets to see the fruits of his labor - newly rendered 3D components in the TS Circuit snippets interface.</p><p>Throughout, Seve shares insights on open-source development, AI-assisted coding, and the intricacies of building a complex electronics design tool in TypeScript and React.</p>]]></content:encoded></item><item><title><![CDATA[Learn how to contribute to tscircuit's footprint]]></title><description><![CDATA[Seve tackles implementing "axial" inside the Typescript footprinter repo using Zod]]></description><link>https://blog.tscircuit.com/p/learn-how-to-contribute-to-tscircuits</link><guid isPermaLink="false">https://blog.tscircuit.com/p/learn-how-to-contribute-to-tscircuits</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Tue, 01 Oct 2024 05:00:58 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/149648282/23c30fb7dc5d65c83f4a3303017c4d3d.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>this dev stream, Seve dives deep into the footprinter repository by implementing the axial footprint. He walks through the entire process, from setting up the test file to creating the footprint function using Zod for type definitions. Seve demonstrates how to use the KiCad viewer for reference, debugs issues with plated holes rendering, and adds a basic silkscreen line. He also touches on updating dependencies, using Git effectively, and the importance of comprehensive testing. Throughout the stream, Seve shares insights on contributing to open-source projects, including tips on creating pull requests and the significance of proper documentation. This episode is particularly useful for contributors looking to understand the FootPrinter codebase and workflow.</p>]]></content:encoded></item><item><title><![CDATA[How to contribute to Schematic Symbols]]></title><description><![CDATA[Seve Walks Through the Schematic Symbol Contribution Process]]></description><link>https://blog.tscircuit.com/p/how-to-contribute-to-schematic-symbols</link><guid isPermaLink="false">https://blog.tscircuit.com/p/how-to-contribute-to-schematic-symbols</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Mon, 30 Sep 2024 06:08:36 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/149594344/21b21885cad7e66e345f862ca1163a54.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this episode, Seve guides viewers through creating a photodiode symbol for the <a href="https://github.com/tscircuit/schematic-symbols">Schematic Symbols project</a>. He covers the entire process, from selecting an issue on GitHub to submitting a pull request. Key topics include:</p><ol><li><p>Choosing and researching a symbol (photodiode) from the issues list</p></li><li><p>Creating and editing the SVG file in Inkscape</p></li><li><p>Generating TypeScript files using 'bun run generate'</p></li><li><p>Adjusting text positioning and anchors in both horizontal and vertical orientations</p></li><li><p>Fixing rendering issues in the vertical layout</p></li><li><p>Best practices for symbol design and text placement</p></li><li><p>Committing changes and creating a pull request with the 'fixes' keyword</p></li></ol><p>Seve also touches on potential improvements for the volt meter symbol and discusses the importance of readability in rotated components. This episode provides an in-depth look at contributing to the schematic symbols project for experienced TSCircuit developers.</p>]]></content:encoded></item><item><title><![CDATA[Battling Winter(spec) Blues: Fake API Adventures]]></title><description><![CDATA[Seve wrestles with Winterspec, Zustand, and TypeScript to build a fake API for the TS Circuit snippet server]]></description><link>https://blog.tscircuit.com/p/battling-winterspec-blues-fake-api</link><guid isPermaLink="false">https://blog.tscircuit.com/p/battling-winterspec-blues-fake-api</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Thu, 26 Sep 2024 15:09:23 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/149431934/5e833c616383e5d9ea9a20851742aad8.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this dev stream, Seve dives deep into setting up a fake API for the TS Circuit snippet server. He grapples with Winterspec configuration, debugs TypeScript errors, and implements stateful middleware for the Vite development server. Highlights include fixing common params in Winterspec, adapting the Vite config to use plugins instead of proxies, and redesigning the snippet schema to better handle owner and name properties. Seve also touches on future plans for TS Circuit, including daily circuit designs and potential lab streams. Despite some "in the weeds" moments, Seve makes significant progress in getting the fake API functional, setting the stage for implementing save functionality and additional pages in future streams</p>]]></content:encoded></item><item><title><![CDATA[Launching snippets.tscircuit.com: Browser-Based Circuit Design with React]]></title><description><![CDATA[Battling minification bugs and implementing URL compression for shareable snippets]]></description><link>https://blog.tscircuit.com/p/launching-snippetstscircuitcom-browser</link><guid isPermaLink="false">https://blog.tscircuit.com/p/launching-snippetstscircuitcom-browser</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Wed, 25 Sep 2024 19:25:02 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/149408505/d1cfa72eabe7819d4efe1097bf09912f.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this marathon 4.5-hour stream, Seve builds and deploys snippets.tscircuit.com, a browser-based playground for creating circuits using React and TS Circuit. He implements in-browser TSX compilation, 2D/3D circuit rendering, and URL-based snippet sharing. Along the way, Seve encounters and resolves tricky minification bugs related to component naming in production builds. He also explores potential integrations with Valtown and discusses the challenges of server-side rendering for dynamic content. The stream culminates in a successful deployment, demonstrating the creation and sharing of circuit snippets entirely in the browser</p>]]></content:encoded></item><item><title><![CDATA[Battling JLC's Assembly Interface: Ordering the First TS Circuit Keyboard]]></title><description><![CDATA[Working through lots of issues as we try to order the first tscircuit keyboard]]></description><link>https://blog.tscircuit.com/p/battling-jlcs-assembly-interface</link><guid isPermaLink="false">https://blog.tscircuit.com/p/battling-jlcs-assembly-interface</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Tue, 24 Sep 2024 03:34:15 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/149330806/927d5dec871467012fb8bd0196e7fa29.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this stream, Seve finally orders the first custom 9-key keyboard designed with TS Circuit. He tackles several challenges, including fixing a bug in the merge_routes function to properly add vias during layer changes. Despite successful auto-routing, Seve encounters issues with JLC PCB's assembly interface, forcing him to manually adjust component placements. He explores alternatives like PCB Way before ultimately succeeding with JLC using KiCad-exported Gerbers. The stream concludes with Seve placing a $62 order for two assembled PCBs and discussing future improvements for TS Circuit's output compatibility with manufacturers</p>]]></content:encoded></item><item><title><![CDATA[Bun FFI Benchmarking: Optimizing tscircuit's Auto-Router]]></title><description><![CDATA[Exploring the potential of Bun's new Foreign Function Interface for speeding up obstacle detection]]></description><link>https://blog.tscircuit.com/p/bun-ffi-benchmarking-optimizing-tscircuits</link><guid isPermaLink="false">https://blog.tscircuit.com/p/bun-ffi-benchmarking-optimizing-tscircuits</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Wed, 18 Sep 2024 21:41:26 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/149075530/28caea34ae6f35a4fb958a7b0aec5b2b.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this dev stream, Seve dives into Bun's newly released Foreign Function Interface (FFI) to see if it can optimize tscircuit's auto-routing algorithms. He focuses on porting the <code>getObstacleAt</code> function to C and benchmarks its performance against pure JavaScript implementations in both Bun and Node.js (V8). Seve encounters several challenges, including type issues with Bun's FFI, C compilation flags, and unexpected optimization behaviors. He also explores different methods of passing data between JavaScript and C, and discusses the intricacies of accurate performance measurement. Despite initial expectations, the results show that the C implementation doesn't significantly outperform the JavaScript versions, leading to insights about V8's optimization capabilities and the complexities of cross-language optimization.</p>]]></content:encoded></item><item><title><![CDATA[KiCad Integration: Parsing and Exporting Kicad PCB to and from Circuit JSON]]></title><description><![CDATA[Bridging TS Circuit and KiCad with AI-assisted development]]></description><link>https://blog.tscircuit.com/p/kicad-integration-parsing-and-exporting</link><guid isPermaLink="false">https://blog.tscircuit.com/p/kicad-integration-parsing-and-exporting</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Tue, 17 Sep 2024 04:22:21 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/148990846/bff726cb115a7741f6d8f47b8341531c.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this 2-hour coding session, Seve tackles the challenge of integrating KiCad file formats with TS Circuit. He starts by using ChatGPT's 01 preview to generate an initial KiCad PCB parser, then iteratively debugs and refines the code to convert between CircuitJSON and KiCad's S-expression format. Key highlights include:</p><ul><li><p>Implementing KiCad PCB to CircuitJSON conversion</p></li><li><p>Debugging pad and footprint positioning issues</p></li><li><p>Adding layer mapping and support for SMT pads</p></li><li><p>Creating a CircuitJSON to KiCad PCB exporter</p></li><li><p>Discussing future plans for design rule checks and error visualization</p></li></ul><p>Seve demonstrates real-time problem-solving, leveraging AI tools, and shares insights on naming conventions, type safety, and maintaining backwards compatibility. The stream concludes with a successfully imported circuit in KiCad and plans for further refinement of the integration.</p>]]></content:encoded></item><item><title><![CDATA[Debugging Auto-Routing in TSCircuit: Implementing Debug SVGs for Algorithm Visualization]]></title><description><![CDATA[Deep Dive into Circuit to SVG, Fabrication Notes, and Auto-Router Debugging]]></description><link>https://blog.tscircuit.com/p/debugging-auto-routing-in-tscircuit-955</link><guid isPermaLink="false">https://blog.tscircuit.com/p/debugging-auto-routing-in-tscircuit-955</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Wed, 11 Sep 2024 18:06:23 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/148777296/68651f589b39199d88b4b88e3448a3e7.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this developer stream, Seve guides contributors through critical improvements to the TSCircuit project, focusing on enhancing the auto-routing algorithm's debugging capabilities. Key highlights include:</p><ol><li><p>Implementing fabrication note paths and text in Circuit to SVG, improving visualization of debug information.</p></li><li><p>Refactoring Circuit to SVG to handle element ordering, ensuring proper layering of components.</p></li><li><p>Fixing issues with path closing in fabrication notes and silkscreen elements.</p></li><li><p>Creating a debug SVG function to visualize each step of the auto-routing algorithm, providing invaluable insights for debugging and optimization.</p></li><li><p>Addressing the challenge of routing traces in a custom 9-key keyboard design, showcasing real-world application of the improvements.</p></li><li><p>Discussion on maintaining code stability across multiple repositories while rapidly iterating on features.</p></li></ol><p>This stream is perfect for TSCircuit contributors looking to understand the intricacies of the project's visualization and debugging tools, as well as the auto-routing algorithm's inner workings. Seve demonstrates practical problem-solving, refactoring techniques, and the importance of visualization in complex algorithm development.</p>]]></content:encoded></item><item><title><![CDATA[Debugging Auto-Routing in TSCircuit: Fabrication Notes & SVG Visualization]]></title><description><![CDATA[Implementing Fabrication Note Components and Analyzing I-Jump A* Algorithm Behavior]]></description><link>https://blog.tscircuit.com/p/debugging-auto-routing-in-tscircuit</link><guid isPermaLink="false">https://blog.tscircuit.com/p/debugging-auto-routing-in-tscircuit</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Wed, 11 Sep 2024 04:01:01 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/148752761/80906c8bbedec835d05cc4d7cbb670f3.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this deep dive into TSCircuit development, Seve tackles several intricate issues related to the auto-routing algorithm and component implementation. The video covers:</p><ol><li><p>Fixing a bug causing duplicate traces in the auto-router output</p></li><li><p>Implementing fabrication note text and path components in TS-Circuit Core</p></li><li><p>Creating tests for the new fabrication note components</p></li><li><p>Exploring the auto-routing dataset viewer with debug mode enabled</p></li><li><p>Analyzing the I-Jump A* algorithm's behavior in complex routing scenarios</p></li><li><p>Identifying and reproducing a specific auto-routing issue where traces get too close to obstacles</p></li><li><p>Discussing potential improvements to the goal-passing problem in the auto-router</p></li></ol><p>Seve demonstrates advanced debugging techniques, including using the auto-routing dataset viewer to step through algorithm iterations and visualize routing decisions. He also touches on the challenges of developing interdependent modules in the TSCircuit ecosystem.</p><p>This video is particularly useful for contributors looking to understand the intricacies of the auto-routing algorithm, implement new components in TS-Circuit Core, and improve debugging workflows for complex PCB design scenarios.</p>]]></content:encoded></item><item><title><![CDATA[Multi-Layer PCB Routing in TSCircuit: Fixing Circuit-to-SVG & Auto-Routing Algorithms]]></title><description><![CDATA[A 3-hour deep dive into implementing layer-specific obstacle avoidance and fixing trace and pad rendering inside of circuit-to-svg]]></description><link>https://blog.tscircuit.com/p/multi-layer-pcb-routing-in-tscircuit</link><guid isPermaLink="false">https://blog.tscircuit.com/p/multi-layer-pcb-routing-in-tscircuit</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Mon, 09 Sep 2024 22:47:53 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/148701004/bf39ced950161e7fa54c1d296021b949.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this extensive development stream, Seve guides contributors through a complex implementation of multi-layer PCB routing in TSCircuit. The video covers:</p><ol><li><p>Debugging and fixing the Circuit-to-SVG library to properly render traces on different layers with correct colors</p></li><li><p>Refactoring the auto-routing data set to support layer-specific obstacles</p></li><li><p>Implementing layer information in the I-Jump A* algorithm for multi-layer routing</p></li><li><p>Testing and verifying the new multi-layer routing capabilities</p></li></ol><p>Key technical aspects covered include:</p><ul><li><p>Modifying SVG generation to support layer-specific rendering</p></li><li><p>Refactoring obstacle definitions in the auto-routing algorithm</p></li><li><p>Updating the Simple Route JSON format to include layer information</p></li><li><p>Implementing layer-aware obstacle avoidance in the I-Jump A* algorithm</p></li><li><p>Debugging cross-repo dependencies and fixing build processes</p></li></ul><p>This video is ideal for contributors familiar with TSCircuit's codebase and looking to understand the intricacies of implementing multi-layer PCB routing. It showcases real-time problem-solving and the iterative nature of complex feature implementation across multiple interconnected libraries.</p>]]></content:encoded></item><item><title><![CDATA[Implementing Hover Highlights and Trace Hints in tscircuit: Core Module Refactoring]]></title><description><![CDATA[Seve deep dives into PCB rendering phases, artifact management, and local development workflows]]></description><link>https://blog.tscircuit.com/p/implementing-hover-highlights-and</link><guid isPermaLink="false">https://blog.tscircuit.com/p/implementing-hover-highlights-and</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Mon, 09 Sep 2024 05:00:28 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/148669394/8e1c04cd85edb4d1c65ce26ed37c1d9a.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this in-depth development stream, Seve guides contributors through significant improvements to the tscircuit project, focusing on two main areas:</p><ol><li><p>Hover Highlights Implementation:</p></li></ol><ul><li><p>Refactoring the PCB drawing object to include mouse interaction properties</p></li><li><p>Creating a new render phase for inserting trace hints</p></li><li><p>Implementing color manipulation for highlighted elements using the color library</p></li><li><p>Discussing the importance of net list generation for connected element highlighting</p></li></ul><ol start="2"><li><p>Trace Hints Rendering:</p></li></ol><ul><li><p>Fixing the issue of trace hints not being drawn in the edit traces view</p></li><li><p>Refactoring the core module to create trace hint classes from manual trace hints props</p></li><li><p>Adjusting render phases to ensure proper order of operations (port matching, trace hint insertion)</p></li><li><p>Adding PCB trace hints to the soup and ensuring correct ID assignment</p></li></ul><p>Throughout the stream, Seve demonstrates best practices for:</p><ul><li><p>Writing and updating tests to verify new functionality</p></li><li><p>Managing artifacts and improving code organization</p></li><li><p>Local development workflows using yalc for testing changes before PR merges</p></li><li><p>Addressing TypeScript challenges and improving type safety</p></li></ul><p>This video is ideal for contributors looking to understand the intricacies of tscircuit's rendering pipeline and those interested in advanced React and TypeScript development techniques in the context of electronic design automation.</p>]]></content:encoded></item><item><title><![CDATA[Building a 9-Key Macro Keypad: Debugging Diodes and Traces]]></title><description><![CDATA[Overcoming rendering issues, implementing diodes, and tackling trace connections in our custom keyboard project]]></description><link>https://blog.tscircuit.com/p/building-a-9-key-macro-keypad-debugging</link><guid isPermaLink="false">https://blog.tscircuit.com/p/building-a-9-key-macro-keypad-debugging</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Fri, 06 Sep 2024 17:08:12 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/148583705/cd4645c96915791776cf464dd5afb9e1.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>we dive deep into the intricacies of building a 9-key macro keypad using the TS Circuit Core library. This stream focuses on debugging and implementing crucial components of our keyboard design.</p><p>Key highlights of this session include:</p><ol><li><p>Fixing rendering issues with diodes and ensuring they appear correctly in our PCB layout.</p></li><li><p>Implementing a new 'Key' component that combines the switch shaft and diode.</p></li><li><p>Exploring the correct placement and rotation of diodes in relation to the switches.</p></li><li><p>Debugging trace connections between switches and diodes.</p></li><li><p>Addressing various bugs in the TS Circuit Core library, including issues with component rendering and port identification.</p></li></ol><p>Throughout the stream, we encounter and solve multiple challenges, demonstrating the iterative nature of hardware development. We also discuss best practices for issue tracking, commit messages, and project organization.</p>]]></content:encoded></item><item><title><![CDATA[Debugging Deep: Fixing Port Initialization in TS Circuit]]></title><description><![CDATA[Refactoring @tscircuit/core & Solving Footprint Component Issues]]></description><link>https://blog.tscircuit.com/p/debugging-deep-fixing-port-initialization</link><guid isPermaLink="false">https://blog.tscircuit.com/p/debugging-deep-fixing-port-initialization</guid><dc:creator><![CDATA[Seve Ibarluzea]]></dc:creator><pubDate>Thu, 05 Sep 2024 00:21:22 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/148514910/af5fa58321a94756809678c95976b071.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this advanced development session, we dive deep into the internals of TS Circuit to fix critical issues with port initialization and footprint components. Watch as we:</p><ol><li><p>Refactor the 'project' concept to 'root/root circuit' for better clarity</p></li><li><p>Implement a new 'initialize ports from children' render phase</p></li><li><p>Debug and fix footprint port initialization problems</p></li><li><p>Tackle the challenges of defining pins as React children</p></li><li><p>Resolve conflicts in port addition and initialization</p></li><li><p>Refactor code to prevent port mutations and improve stability</p></li></ol>]]></content:encoded></item></channel></rss>