PageSourceSearch

https://quilter-staging.webflow.io/

html quilter-staging.webflow.io collected 2026-10-03 13:38:04 UTC 250,663 bytes, 2,358 lines download raw bytes

1<!DOCTYPE html><!-- Last Published: Thu Oct 01 2026 16:03:04 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="quilter-staging.webflow.io" data-wf-page="68b7918b99fa38e5185dc4e3" data-wf-site="68b7918b99fa38e5185dc4e6" data-wf-intellimize-customer-id="117304956" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Quilter - Physics-Driven AI for Electronics Design</title><link rel="alternate" hrefLang="x-default" href="https://www.quilter.ai/"/><link rel="alternate" hrefLang="en" href="https://www.quilter.ai/"/><link rel="alternate" hrefLang="ja" href="https://www.quilter.ai/ja"/><link rel="alternate" hrefLang="de" href="https://www.quilter.ai/de"/><meta content="Quilter uses physics-driven AI to automate PCB placement and routing. Get review-ready layout candidates in hours. Works with Altium, Cadence, Xpedition." name="description"/><meta content="Physics-Driven AI for Electronics Design" property="og:title"/><meta content="Quilter uses physics-driven AI to automate PCB placement and routing. Get review-ready layout candidates in hours. Works with Altium, Cadence, Xpedition." property="og:description"/><meta content="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a54f8583ff2d9a4d05db328_MetaImage%20Home.png" property="og:image"/><meta content="Physics-Driven AI for Electronics Design" name="twitter:title"/><meta content="Quilter uses physics-driven AI to automate PCB placement and routing. Get review-ready layout candidates in hours. Works with Altium, Cadence, Xpedition." name="twitter:description"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/css/quilter-staging.shared.d9234a586.min.css" rel="stylesheet" type="text/css" integrity="sha384-2SNKWGhCcsGEiaY03w/ahSUzJ1XczUaKUl1QlFW9kOd/kL8nrmqB8uHQceYG1dgy" crossorigin="anonymous"/>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/69fb4d33cbfff575cefe3d47_Favicon-transparent.png" rel="icon" type="image/png" sizes="32x32" media="(prefers-color-scheme: light)"/><link href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/69fb4d33cbfff575cefe3d47_Favicon-transparent.png" rel="icon" type="image/png" sizes="32x32" media="(prefers-color-scheme: dark)"/><link href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/69fb4d3334e299c63081f039_Favicon-transparent.png" rel="icon" type="image/png" sizes="48x48"/><link href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/69f8bcea833bddcdc45e8beb_Webclip.png" rel="apple-touch-icon" sizes="180x180"/><link href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/69f8bcea2ffb14575b8aebb2_Webclip.png" rel="icon" type="image/png" sizes="192x192"/><link href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/69f8bcea2427a76c3a0c58a7_Webclip.png" rel="icon" type="image/png" sizes="512x512"/><link href="https://www.quilter.ai/" rel="canonical"/>
1<script type="application/ld+json">
2{
3  "@context": "https://schema.org",
4  "@graph": [
5    {
6      "@type": "WebSite",
7      "@id": "https://www.quilter.ai/#website",
8      "name": "Quilter",
9      "alternateName": "Quilter AI",
10      "url": "https://www.quilter.ai",
11      "description": "Physics-driven AI that fully automates PCB layout. Schematic to fabrication-ready in hours, not weeks.",
12      "publisher": {"@id": "https://www.quilter.ai/#organization"},
13      "inLanguage": ["en", "ja", "de"]
14    },
15    {
16      "@type": "SoftwareApplication",
17      "@id": "https://www.quilter.ai/product/#softwareapplication",
18      "name": "Quilter",
19      "url": "https://www.quilter.ai/product",
20      "applicationCategory": "DesignApplication",
21      "applicationSubCategory": "PCB Layout Automation",
22      "operatingSystem": "Web-based",
23      "description": "Physics-driven AI platform for automated PCB layout design using reinforcement learning.",
24      "image": "https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/68fd0849658129ba21f9ee18_home-page-updated.webp",
25      "provider": {"@id": "https://www.quilter.ai/#organization"},
26      "brand": {"@type": "Brand", "name": "Quilter"},
27      "featureList": [
28        "Automated PCB layout generation",
29        "Physics-aware design validation",
30        "Reinforcement-learning optimization",
31        "Multiple candidate board generation",
32        "Fabrication-ready output in hours",
33        "Integration with Altium, Cadence, and Siemens"
34      ]
35    }
36  ]
37}
38</script>
38<!-- Consent Pro v2: synchronous config before runtime -->
39<script src="https://api.consentpro.com/v2/cdn/runtime/config/68b7918b99fa38e5185dc4e6.js" finsweet="consentpro"></script>
vendor: 1 bytes, line 39
39
40<script src="https://api.consentpro.com/v2/cdn/runtime.js" finsweet="consentpro" siteid="68b7918b99fa38e5185dc4e6"></script>
vendor: 1 bytes, line 40
40
41<script type="application/ld+json">
42{
43  "@context": "https:\/\/schema.org",
44  "@type": "Organization",
45  "@id": "https:\/\/www.quilter.ai\/#organization",
46  "name": "Quilter",
47  "alternateName": "Quilter AI",
48  "url": "https:\/\/www.quilter.ai",
49  "logo": {
50    "@type": "ImageObject",
51    "@id": "https:\/\/www.quilter.ai\/#logo",
52    "url": "https:\/\/cdn.prod.website-files.com\/68b7918b99fa38e5185dc4e6\/69f8a9fe0ea52b0c72dcb05d_Quilter%20Logo.png",
53    "contentUrl": "https:\/\/cdn.prod.website-files.com\/68b7918b99fa38e5185dc4e6\/69f8a9fe0ea52b0c72dcb05d_Quilter%20Logo.png",
54    "caption": "Quilter"
55  },
56  "description": "Quilter uses physics-driven AI to fully automate PCB layout, taking designs from schematic to fabrication-ready board in hours, not weeks. Integrates with Altium, Cadence, and Siemens.",
57  "sameAs": [
58    "https:\/\/www.linkedin.com\/company\/quilterai",
59    "https:\/\/x.com\/quilterai",
60    "https:\/\/www.youtube.com\/@QuilterAI"
61  ]
62}
63</script>
63
64
65<!-- Lenis smooth scroll CSS -->
66<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/lenis.css">
67
68<style>
69  html { height: auto; }
70
71  @media (max-width: 991px) {
72    .mega-menu-wrapper {
73      position: fixed; inset: 0; z-index: 999;
74      height: 100vh; max-height: 100vh; overflow-y: auto;
75      -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
76      background: #000; display: none;
77    }
78    .mega-menu-wrapper.is-open { display: block; }
79  }
80
81  html.nav-open, body.nav-open { overflow: hidden; overscroll-behavior: contain; }
82
83  @media (min-width: 992px) {
84    .main_navbar-component { overflow: visible; z-index: 20; }
85    .main_navbar-component .mega-menu-wrapper .dropdown-list {
86      position: absolute; transform: translateX(-50%);
87      width: 100vw; max-width: none; background-color: #000;
88    }
89    .main_navbar-component .mega-menu-wrapper .dropdown-list .container-large {
90      max-width: 1360px; margin-left: auto; margin-right: auto;
91    }
92  }
93
94  @media (min-width: 992px) {
95    .main_navbar-component .mega-menu-wrapper.is-desktop .w-dropdown-list {
96      display: block !important; opacity: 0; visibility: hidden; pointer-events: none;
97      transform: translateY(10px);
98      transition: opacity 220ms ease, transform 220ms ease, visibility 0s linear 220ms;
99      will-change: opacity, transform;
100    }
101    .main_navbar-component .mega-menu-wrapper.is-desktop .w-dropdown-list.w--open {
102      opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
103      transition: opacity 220ms ease, transform 220ms ease, visibility 0s linear 0s;
104    }
105  }
106</style>
107
108<!-- ===== Quilter HubSpot forms — shared dark theme =====
109     Every form embed renders into a div whose id starts "qtr-hs-", and every one
110     passes css:"" to hbspt.forms.create. That css:"" matters: without it HubSpot
111     renders the form inside an iframe that page CSS cannot reach.
112     Per-form tweaks live in that form's own embed; everything shared is here. -->
113<style>
114  /* HubSpot wraps every field in <div class="input">, which collides with the
115     site's own global .input class (border-bottom + min-height 3.75rem). Left
116     alone that draws a second underline under every field and doubles the field
117     height, so the wrapper is reset first. */
118  [id^="qtr-hs-"] .input {
119    border:0!important; border-radius:0!important; height:auto!important;
120    min-height:0!important; margin:0!important; padding:0!important;
121    background:none!important; font-size:inherit!important; font-weight:inherit!important;
122  }
123
124  [id^="qtr-hs-"] { font-family:var(--inter); color:var(--tertiary); }
125  [id^="qtr-hs-"] form { display:flex; flex-direction:column; gap:1.5rem; margin:0; padding:0; }
126  [id^="qtr-hs-"] fieldset { max-width:none!important; width:100%!important; margin:0!important; padding:0; border:0; }
127  [id^="qtr-hs-"] fieldset.form-columns-2, [id^="qtr-hs-"] fieldset.form-columns-3 { display:flex; gap:1.5rem; flex-wrap:wrap; }
128  [id^="qtr-hs-"] .hs-form-field { width:100%!important; float:none!important; margin:0!important; padding:0!important; }
129  [id^="qtr-hs-"] fieldset.form-columns-2 .hs-form-field,
130  [id^="qtr-hs-"] fieldset.form-columns-3 .hs-form-field { flex:1 1 12rem; width:auto!important; }
131  [id^="qtr-hs-"] legend, [id^="qtr-hs-"] .hs-field-desc { display:none; }
132
133  [id^="qtr-hs-"] .hs-form-field > label {
134    display:block; margin:0 0 .5rem!important;
135    color:var(--body-text); font-size:.875rem; font-weight:400; line-height:140%;
136  }
137  [id^="qtr-hs-"] .hs-form-required { color:#ff6b6b; margin-left:.15em; }
138
139  /* Fields. No top padding — the label above already provides the offset, and
140     padding here just made every field taller. A <select> has a bigger
141     intrinsic height than a text input, so both are pinned to the same line box
142     or they sit at different heights side by side in a 2-column row. */
143  [id^="qtr-hs-"] .hs-input {
144    box-sizing:border-box; width:100%!important; min-height:0;
145    border:0; border-bottom:1px solid rgba(255,255,255,.28); border-radius:0;
146    margin:0; padding:0 0 .5rem; background-color:transparent; color:var(--tertiary);
147    font-family:inherit; font-size:1rem; font-weight:400; line-height:1.5;
148    -webkit-appearance:none; appearance:none; transition:border-color .2s ease;
149  }
150  [id^="qtr-hs-"] input.hs-input, [id^="qtr-hs-"] select.hs-input { height:calc(1.5em + .5rem); }
151  [id^="qtr-hs-"] .hs-input:hover { border-bottom-color:rgba(255,255,255,.5); }
152  [id^="qtr-hs-"] .hs-input:focus { outline:none; border-bottom-color:var(--primary-color); }
153  [id^="qtr-hs-"] .hs-input::placeholder { color:rgba(255,255,255,.35); }
154  [id^="qtr-hs-"] textarea.hs-input { height:auto; min-height:6.5rem; padding-top:.25rem; resize:vertical; display:block; }
155  [id^="qtr-hs-"] select.hs-input {
156    padding-right:1.75rem; cursor:pointer;
157    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewB
157ox='0 0 24 24' fill='none' stroke='%23dddddd' stroke-width='1.5'><path d='M6 9l6 6 6-6'/></svg>");
158    background-repeat:no-repeat; background-position:right .25rem center;
159  }
160  [id^="qtr-hs-"] select.hs-input option { background:#191919; color:#fff; }
161  [id^="qtr-hs-"] input:-webkit-autofill {
162    -webkit-text-fill-color:#fff; -webkit-box-shadow:0 0 0 1000px #0a0a0a inset; caret-color:#fff;
163  }
164
165  /* Checkbox / radio. The .hs-input rule above sets appearance:none, which kills
166     the native tick AND makes accent-color a no-op — checking the box showed
167     nothing at all. The control is redrawn here instead. */
168  [id^="qtr-hs-"] ul.inputs-list, [id^="qtr-hs-"] ul.inputs-list li { list-style:none; margin:0; padding:0; }
169  [id^="qtr-hs-"] .hs-form-booleancheckbox-display { display:flex; align-items:flex-start; gap:.625rem; cursor:pointer; }
170  [id^="qtr-hs-"] .hs-form-booleancheckbox-display > span { margin-left:0!important; }
171  [id^="qtr-hs-"] .hs-fieldtype-booleancheckbox > label { margin:0!important; }
172  [id^="qtr-hs-"] input[type="checkbox"].hs-input,
173  [id^="qtr-hs-"] input[type="radio"].hs-input {
174    width:1.0625rem!important; height:1.0625rem; min-height:0;
175    margin:.125rem 0 0; padding:0!important; flex:0 0 auto;
176    border:1px solid rgba(255,255,255,.45); border-radius:.1875rem;
177    background:transparent; cursor:pointer; position:relative;
178    transition:background-color .15s ease, border-color .15s ease;
179  }
180  [id^="qtr-hs-"] input[type="radio"].hs-input { border-radius:50%; }
181  [id^="qtr-hs-"] input[type="checkbox"].hs-input:hover,
182  [id^="qtr-hs-"] input[type="radio"].hs-input:hover { border-color:var(--primary-color); }
183  [id^="qtr-hs-"] input[type="checkbox"].hs-input:checked {
184    background-color:var(--primary-color); border-color:var(--primary-color);
185    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M3.5 8.5l3 3 6-6'/></svg>");
186    background-size:.75rem .75rem; background-position:center; background-repeat:no-repeat;
187  }
188  [id^="qtr-hs-"] input[type="radio"].hs-input:checked {
189    border-color:var(--primary-color);
190    background-image:radial-gradient(circle, var(--primary-color) 0 45%, transparent 46%);
191  }
192  [id^="qtr-hs-"] input[type="checkbox"].hs-input:focus-visible,
193  [id^="qtr-hs-"] input[type="radio"].hs-input:focus-visible {
194    outline:2px solid var(--primary-color); outline-offset:2px;
195  }
196
197  [id^="qtr-hs-"] .hs-richtext, [id^="qtr-hs-"] .hs-richtext p {
198    margin:0; font-size:.9375rem; line-height:160%; color:var(--body-text);
199  }
200  [id^="qtr-hs-"] .hs-richtext h1, [id^="qtr-hs-"] .hs-richtext h2,
201  [id^="qtr-hs-"] .hs-richtext h3, [id^="qtr-hs-"] .hs-richtext h4 {
202    margin:0 0 .5rem; font-size:1.125rem; font-weight:500; line-height:140%; color:var(--tertiary);
203  }
204  [id^="qtr-hs-"] a { color:var(--body-text); text-decoration:underline; text-underline-offset:.15em; }
205  [id^="qtr-hs-"] a:hover { color:var(--primary-color); }
206
207  /* Legal / consent block.
208     Client asked to drop the GDPR boilerplate paragraphs ("By checking the boxes
209     below…", "We care about your privacy…", "To deliver your service…") — they
210     duplicate what the consent checkbox itself already says. The checkbox and
211     its Privacy Policy link stay: that is what actually records consent.
212     Hidden rather than deleted, so the copy can be restored from HubSpot's GDPR
213     settings without touching code. */
214  [id^="qtr-hs-"] .legal-consent-container { display:flex; flex-direction:column; gap:.875rem; }
215  [id^="qtr-hs-"] .legal-consent-container > div { margin:0; }
216  [id^="qtr-hs-"] .legal-consent-container > .hs-richtext { display:none; }
217  [id^="qtr-hs-"] .legal-consent-container .hs-fieldtype-booleancheckbox label,
218  [id^="qtr-hs-"] .legal-consent-container .hs-form-booleancheckbox-display span {
219    font-size:.875rem!important; font-weight:400!important; line-height:150%; color:var(--body-text);
220  }
221
222  /* submit — mirrors the site's .form-btn */
223  [id^="qtr-hs-"] .hs-submit, [id^="qtr-hs-"] .hs-submit .actions { margin:0; padding:0; }
224  [id^="qtr-hs-"] .hs-button {
225    box-sizing:border-box; width:100%; min-height:3.5rem; padding:0 1.5rem;
226    border:.0625rem solid var(--primary-color); border-radius:.625rem;
227    background-color:transparent; color:var(--primary-color);
228    text-align:left; font-family:inherit; font-size:1rem; font-weight:500; line-height:1;
229    cursor:pointer; -webkit-appearance:none; appearance:none;
230    transition:background-color .25s ease, color .25s ease;
231  }
232  [id^="qtr-hs-"] .hs-button:hover { background-color:var(--primary-color); color:#fff; }
233  [id^="qtr-hs-"] .hs-button:disabled { opacity:.5; cursor:default; }
234
235  [id^="qtr-hs-"] .hs-error-msgs { list-style:none; margin:.375rem 0 0; padding:0; }
236  [id^="qtr-hs-"] .hs-error-msgs label { margin:0!important; color:#ff6b6b; font-size:.8125rem; font-weight:400; line-height:140%; }
237
238  /* Post-submit message. HubSpot returns whatever rich HTML was authored in the
239     form's inline message — the download form sends a heading, download links
240     and a centred disclaimer — so headings/links/emphasis all need styling or
241     they fall back to browser defaults. */
242  [id^="qtr-hs-"] .submitted-message {
243    display:flex; flex-direction:column; gap:1rem;
244    font-size:1rem; line-height:160%; color:var(--body-text);
245  }
246  [id^="qtr-hs-"] .submitted-message > * { margin:0; }
247  [id^="qtr-hs-"] .submitted-message h1, [id^="qtr-hs-"] .submitted-message h2,
248  [id^="qtr-hs-"] .submitted-message h3, [id^="qtr-hs-"] .submitted-message h4,
249  [id^="qtr-hs-"] .submitted-message h5, [id^="qtr-hs-"] .submitted-message h6 {
250    margin:0; color:var(--tertiary); font-size:1.375rem; font-weight:600; line-height:140%;
251  }
252  [id^="qtr-hs-"] .submitted-message a { color:var(--primary-color); text-decoration:underline; }
253  [id^="qtr-hs-"] .submitted-message a:hover { color:var(--tertiary); }
254  [id^="qtr-hs-"] .submitted-message strong { color:var(--tertiary); font-weight:600; }
255  [id^="qtr-hs-"] .submitted-message em {
256    font-size:.8125rem; line-height:155%; color:rgba(255,255,255,.5); font-style:italic;
257  }
258
259  /* Newsletter forms are a single field with a placeholder, so the visible label
260     is redundant — hidden visually, kept for screen readers. */
261  [id^="qtr-hs-newsletter"] .hs-form-field:not(.hs-fieldtype-booleancheckbox) > label {
262    position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
263    overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
264  }
265</style>
266
267<!-- Google Tag Manager -->
268<script>
vendor: 379 bytes, lines 268-278
268
269  (function(w,d,s,l,i){
270    w[l]=w[l]||[];
271    w[l].push({'gtm.start': new Date().getTime(), event:'gtm.js'});
272    var f=d.getElementsByTagName(s)[0],
273        j=d.createElement(s),
274        dl=l!='dataLayer'?'&l='+l:'';
275    j.async=true;
276    j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;
277    f.parentNode.insertBefore(j,f);
278  })(window,document,'script','dataLayer','
278GTM-ND66GR2M
vendor: 4 bytes, line 278
278');
279</script>
279
280
281<link rel="preconnect" href="https://widget.intercom.io" crossorigin>
282<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin>
283<script>
284  (function () {
285    function add(src){
286      var s = document.createElement('script');
287      s.src = src; s.async = true; s.crossOrigin = 'anonymous';
288      document.head.appendChild(s);
289      return s;
290    }
291    var primary = add('https://cdn.jsdelivr.net/npm/[email protected]/dist/web-vitals.attribution.iife.min.js');
292    primary.onerror = function(){
293      add('https://unpkg.com/[email protected]/dist/web-vitals.attribution.iife.min.js');
294    };
295  })();
296</script>
296
297<!-- Link Swiper's CSS -->
298<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" />
299
300<style>
301.swiper-pagination-vertical.swiper-pagination-bullets, .swiper-vertical > .swiper-pagination-bullets {
302	right: 50% !important;
303  top: 50% !important;
304  transform: none !important;
305}
306
307.swiper-pagination-bullet {
308    width: 12px;
309    height: 12px;
310    margin: 6px 0;
311    opacity: 0.4;
312    background: #155DD2;
313}
314
315.swiper-pagination-bullet-active {
316    opacity: 1;
317}
318
319.swiper-button-prev {
320	margin-top: 0 !important;
321}
322
323.swiper-button-prev::after, .swiper-rtl .swiper-button-next::after {
324  content: '';
325}
326
327.swiper-button-next::after, .swiper-rtl .swiper-button-prev::after {
328  content: '';
329}
330
331.accordion-header_wrapper .accordion_heading,
332.accordion-header_wrapper .accordion_icon,
333.accordion-header_wrapper .accordion_icon-line {
334	transition: color 0.3s cubic-bezier(.65, .01, .05, .99);
335}
336
337.accordion-header_wrapper:hover .accordion_heading
338{
339  color: #42E2B8;
340}
341
342.accordion-header_wrapper:hover .accordion_icon {
343	border-color: #42E2B8;
344}
345
346.accordion-header_wrapper:hover .accordion_icon-line {
347	background-color: #42E2B8;
348}
349</style>
350
351
352
353<!-- Quilter flow (7-step animated section) — fonts + stylesheet.
354     The stylesheet (46KB) and its script (70KB) are hosted as Webflow assets
355     rather than pasted into embeds: an HTML Embed caps at 10,000 characters,
356     and the script is a single IIFE that cannot be split across 
356<script> tags.
357     Markup + script tag live in the embed on the page. -->
358<!-- Inter is already self-hosted in the shared Webflow stylesheet. -->
359<style data-quilter-selfhosted-font="Saira">
360@font-face {
361  font-family: 'Saira';
362  font-style: normal;
363  font-weight: 600;
364  font-stretch: 100%;
365  font-display: swap;
366  src: url(https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6ab5610ff33ee768cae8f93d_saira-vietnamese-v23.woff2) format('woff2');
367  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
368}
369@font-face {
370  font-family: 'Saira';
371  font-style: normal;
372  font-weight: 600;
373  font-stretch: 100%;
374  font-display: swap;
375  src: url(https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6ab5610f5cff1f3e2d8be04a_saira-latin-ext-v23.woff2) format('woff2');
376  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
377}
378@font-face {
379  font-family: 'Saira';
380  font-style: normal;
381  font-weight: 600;
382  font-stretch: 100%;
383  font-display: swap;
384  src: url(https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6ab5610f5952d84052d225e1_saira-latin-v23.woff2) format('woff2');
385  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
386}
387@font-face {
388  font-family: 'Saira';
389  font-style: normal;
390  font-weight: 700;
391  font-stretch: 100%;
392  font-display: swap;
393  src: url(https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6ab5610ff33ee768cae8f93d_saira-vietnamese-v23.woff2) format('woff2');
394  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
395}
396@font-face {
397  font-family: 'Saira';
398  font-style: normal;
399  font-weight: 700;
400  font-stretch: 100%;
401  font-display: swap;
402  src: url(https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6ab5610f5cff1f3e2d8be04a_saira-latin-ext-v23.woff2) format('woff2');
403  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
404}
405@font-face {
406  font-family: 'Saira';
407  font-style: normal;
408  font-weight: 700;
409  font-stretch: 100%;
410  font-display: swap;
411  src: url(https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6ab5610f5952d84052d225e1_saira-latin-v23.woff2) format('woff2');
412  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
413}
414@font-face {
415  font-family: 'Saira';
416  font-style: normal;
417  font-weight: 800;
418  font-stretch: 100%;
419  font-display: swap;
420  src: url(https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6ab5610ff33ee768cae8f93d_saira-vietnamese-v23.woff2) format('woff2');
421  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
422}
423@font-face {
424  font-family: 'Saira';
425  font-style: normal;
426  font-weight: 800;
427  font-stretch: 100%;
428  font-display: swap;
429  src: url(https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6ab5610f5cff1f3e2d8be04a_saira-latin-ext-v23.woff2) format('woff2');
430  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
431}
432@font-face {
433  font-family: 'Saira';
434  font-style: normal;
435  font-weight: 800;
436  font-stretch: 100%;
437  font-display: swap;
438  src: url(https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6ab5610f5952d84052d225e1_saira-latin-v23.woff2) format('woff2');
439  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
440}
441</style>
442<link rel="stylesheet" href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6769854fa03f919cf96c91_quilter-flow.
442css">
443
444
445
446
447
448<script src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6%2F689e5ba67671442434f3ca35%2F6a81dfa7f597eb30cbea95b3%2Fblogpagelayout-1.1.0.js" type="text/javascript"></script>
448<script src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6%2F689e5ba67671442434f3ca35%2F6a8200692a789741fccb2bf1%2Fblogptestpage-1.4.0.js" type="text/javascript"></script>
448<script src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6%2F689e5ba67671442434f3ca35%2F6a905f241d12c579faf07dbd%2Fblogrichtextstyles-1.4.0.js" type="text/javascript"></script>
448</head><body><div class="page-wrapper background-black"><div data-animation="default" data-collapse="medium" data-duration="400" data-easing="ease" data-easing2="ease" role="banner" class="navbar w-nav"><div><div class="top_navbar type-2"><div class="padding-global"><div class="container-large"><div class="top_navbar-component align-center"><div class="top_navbar-links type-2"><div class="top-bar-text">Project Speedrun: The First Computer Designed by AI</div><a data-placement="top-nav" data-banner="1" href="/project-speedrun" class="top_navlink text-black type-2 w-inline-block"><div class="text-block-3">Discover More</div><div class="topbar_icon w-embed"><svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
449<circle cx="10.5" cy="10" r="9.4" stroke="#ddd" stroke-width="1.2"/>
450<path d="M12.9244 12.4245L12.9244 7.57573L8.07563 7.57573" stroke="#ddd" stroke-width="1.2"/>
451<path d="M8.07617 12.4248L12.9249 7.57607" stroke="#ddd" stroke-width="1.2"/>
452</svg></div></a></div></div></div></div></div></div><div class="main_navbar-component"><div class="padding-global"><div class="container-large max-w-85"><div class="navbar_component"><div class="navbar_header"><a href="/?r=0" aria-current="page" class="quilter-logo-wrapper w-nav-brand w--current"><img loading="lazy" src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/69f372a572b6e69c93adfcf4_Quilter%20Logo%20Blue.svg" alt="" class="logo-quilter"/></a><div class="navbar_links"><div class="navbar-top-wrapper"><div class="mega-menu-wrapper is-desktop"><div class="container-large is-navbar"><div class="mega-menu-content"><div id="w-node-_3ba60632-add3-19a2-0b9d-c7bf4f42f662-eadcc936"><div data-delay="0" data-hover="false" class="nav-point-wrapper dropdown w-dropdown"><div class="dropdown-toggle w-dropdown-toggle"><div class="nav-link">Product &amp; Technology</div><div class="arrow-image w-embed"><svg width="19" height="19" viewBox="0 0 19 14" fill="none" xmlns="http://www.w3.org/2000/svg">
453<path d="M4.5 9L9.5 14L14.5 9" stroke="white" stroke-width="2"/>
454</svg></div></div><div id="dropdown-content-product" class="dropdown-list w-dropdown-list"><div class="container-large max-w-85 test"><div class="dropdown-item-wrapper"><div class="mobile-dropdown-navigation"><a id="all-link-product" href="#" class="all-link w-inline-block"><img loading="eager" src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/691f48fb313ba85055e480cb_all-arrow.svg" alt=""/><p class="text-15">All</p></a></div><div class="dropdown-left"><div class="dropdown-links-left"><a href="/product" class="dropdown-overview-link w-inline-block"><div class="dropdown-overview-image"></div><div class="dropdown-overview-text-wrapper"><p class="text-22 weight-semibold currentcolor">Overview</p><p class="text-12">Generate multiple candidates in hours. Physics validates every trace.</p></div></a><div class="dropdown-secondary-wrapper"><a href="/product/technology" class="dropdown-secondary-link w-inline-block"><p class="text-16-copy text-weight-medium text-white currentcolor">Technology</p><p class="text-12">Quilter uses reinforcement learning to actively explore thousands of generated candidate boards.</p></a><a href="/product/workflow" class="dropdown-secondary-link w-inline-block"><p class="text-16-copy text-weight-medium text-white currentcolor">Workflow</p><p class="text-12">PCB design remains a critical discipline, but engineers don’t need to spendtime on non‑core layout tasks.</p></a></div></div></div><div class="dropdown-right"><a href="/solutions" class="dropdown-title w-inline-block"><p class="text-22 weight-semibold">Solutions</p></a><div class="dropdown-solutions"><div class="dropdown-solutions-column"><div class="tag-wrapper"><p class="dropdown-solutions-tag-2">By Design Type</p></div><div class="w-dyn-list"><div role="list" class="dropdown-solutions-column-links w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/solutions/test-fixtures-harnesses" class="dropdown-solutions-link w-inline-block"><p class="text-16-copy text-weight-medium text-white">Test Fixtures &amp; Harnesses</p><p class="text-12">Shave 4–6 weeks off board bring-up</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/ic-evaluation-boards" class="dropdown-solutions-link w-inline-block"><p class="text-16-copy text-weight-medium text-white">IC Evaluation Boards</p><p class="text-12">Cuts layout cycles from weeks to hours; enables rapid, fabrication-ready design iteration</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/design-validation-boards" class="dropdown-solutions-link w-inline-block"><p class="text-16-copy text-weight-medium text-white">Design Validation Boards</p><p class="text-12">Shrinks validation cycles from months to days</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/backplane-interconnect-boards" class="dropdown-solutions-link w-inline-block"><p class="text-16-copy text-weight-medium text-white">Backplane &amp; Interconnect Boards</p><p class="text-12">From 30+ days to under 24 hours</p></a></div></div></div></div><div class="dropdown-solutions-column"><div class="tag-wrapper"><p class="dropdown-solutions-tag-2">By Industry</p></div><div class="w-dyn-list"><div role="list" class="dropdown-solutions-column-links w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/solutions/semiconductors" class="dropdown-solutions-link w-inline-block"><p class="text-16-copy text-weight-medium text-white">Semiconductors</p><p class="text-12">Bring-up ready in a single workday (first candidates often appear within the first hour).</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/robotics" class="dropdown-solutions-link w-inline-block"><p class="text-16-copy text-weight-medium text-white">Robotics</p><p class="text-12">Compress board bring-up from 4 weeks to under 1 day</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/consumer-electronics" class="dropdown-solutions-link w-inline-block"><p class="text-16-copy text-weight-medium text-white">Consumer Electronics</p><p class="text-12">Boards ready in a single workday (first candidates often appear within the first hour)</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/aerospace-defense" class="dropdown-solutions-link w-inline-block"><p class="text-16-copy text-weight-medium text-white">Aerospace &amp; defense</p><p class="text-12">Faster board bring-up for validation and TRR</p></a></div></div></div></div><div class="dropdown-solutions-column"><div class="tag-wrapper"><p class="dropdown-solutions-tag-2">By Role</p></div><div class="w-dyn-list"><div role="list" class="dropdown-solutions-column-links w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/solutions/r-d-managers" class="dropdown-solutions-link w-inline-block"><p class="text-16-copy text-weight-medium text-white">R&amp;D managers</p><p class="text-12">Accelerate board bring-up</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/pcb-designers" class="dropdown-solutions-link w-inline-block"><p class="text-16-copy text-weight-medium text-white">PCB Designers</p><p class="text-12">Full fab-ready designs in under 4 hours</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/electrical-engineers" class="dropdown-solutions-link w-inline-block"><p class="text-16-copy text-weight-medium text-white">Electrical engineers</p><p class="text-12">Schematic to fab-ready in under 4 hours</p></a></div></div></div></div></div></div></div></div></div></div></div><div id="w-node-_3ba60632-add3-19a2-0b9d-c7bf4f42f719-eadcc936"><div data-delay="0" data-hover="false" class="nav-point-wrapper dropdown w-dropdown"><div class="dropdown-toggle w-dropdown-toggle"><div class="nav-link">Resources</div><div class="arrow-image w-embed"><svg width="19" height="19" viewBox="0 0 19 14" fill="none" xmlns="http://www.w3.org/2000/svg">
455<path d="M4.5 9L9.5 14L14.5 9" stroke="white" stroke-width="2"/>
456</svg></div></div><div id="dropdown-content-resources" class="dropdown-list w-dropdown-list"><div class="container-large max-w-85"><div class="dropdown-item-wrapper"><div class="mobile-dropdown-navigation"><a id="all-link-resources" href="#" class="all-link w-inline-block"><img loading="eager" src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/691f48fb313ba85055e480cb_all-arrow.svg" alt=""/><p class="text-15">All</p></a></div><div class="navbar-resources-wrapper"><a href="/blog" class="dropdown-title links-item w-inline-block"><p class="text-22 weight-semibold">Blog</p><p class="text-12">Product updates, engineering insights, and company news from the Quilter team.</p></a><a href="/workbench" class="dropdown-title links-item w-inline-block"><p class="text-22 weight-semibold">Workbench</p><p class="text-12">A behind-the-scenes microblog about our hardware projects and the AI that designs them.</p></a><a href="/hardware-rich-development" class="dropdown-title links-item w-inline-block"><p class="text-22 weight-semibold">Hardware-Rich Development</p><p class="text-12">How physics‑first AI enables faster, more iterative hardware programs.</p></a><a href="https://docs.quilter.ai/" target="_blank" class="dropdown-title links-item w-inline-block"><p class="text-22 weight-semibold">Documentation</p><p class="text-12">An overview of the features and functionality that Quilter offers to help you generate, explore, and optimize fabrication-ready circuit boards in hours instead of weeks.</p></a><a href="/changelog" class="dropdown-title links-item w-inline-block"><p class="text-22 weight-semibold">Changelog</p><p class="text-12">Quilter is improving with every release. This page tracks what&#x27;s new, what changed, and what we&#x27;re working on next.</p></a><a href="https://community.quilter.ai/" class="dropdown-title links-item w-inline-block"><p class="text-22 weight-semibold">Community</p><p class="text-12">Ask questions, share projects, and get help with real boards — from other users and our team.</p></a></div><div class="dropdown-item-wrapper is-banner"><div class="banner-cms full-width w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="banner-cms-item w-dyn-item"><a data-placement="navbar-resources" data-banner="1" href="/project-speedrun" class="banner-link w-inline-block"><img src="https://cdn.prod.website-files.com/68bb346f5bba4f35114aabb4/6aa92b626cced44622207f4c_6a54f33cd4acfbc6c6fcc06b_mega-menu.webp" loading="lazy" width="Auto" alt="Project Speedrun: the first computer designed by AI" class="banner-nav"/><img src="https://cdn.prod.website-files.com/68bb346f5bba4f35114aabb4/6aa92b626cced44622207f3d_6a54f2e911e2a460748d8585_full-page-tablet.webp" loading="lazy" alt="Project Speedrun: the first computer designed by AI" class="banner-full-image-tablet"/><img src="https://cdn.prod.website-files.com/68bb346f5bba4f35114aabb4/6aa92b626cced44622207f43_6a54f2f6d4acfbc6c6fc8898_blog-mobile.webp" loading="lazy" alt="Project Speedrun: the first computer designed by AI" class="banner-full-image-mobile"/></a></div></div></div></div></div></div></div></div></div><a href="/pricing" class="pricing-btn">Pricing</a><div id="w-node-_3ba60632-add3-19a2-0b9d-c7bf4f42f762-eadcc936"><div data-delay="0" data-hover="false" class="nav-point-wrapper dropdown w-dropdown"><div class="dropdown-toggle w-dropdown-toggle"><div class="nav-link">Company</div><div class="arrow-image w-embed"><svg width="19" height="19" viewBox="0 0 19 14" fill="none" xmlns="http://www.w3.org/2000/svg">
457<path d="M4.5 9L9.5 14L14.5 9" stroke="white" stroke-width="2"/>
458</svg></div></div><div id="dropdown-content-company" class="dropdown-list w-dropdown-list"><div class="container-large max-w-85"><div class="dropdown-item-wrapper is-company"><div class="mobile-dropdown-navigation"><a id="all-link-company" href="#" class="all-link w-inline-block"><img loading="eager" src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/691f48fb313ba85055e480cb_all-arrow.svg" alt=""/><p class="text-15">All</p></a></div><div class="navbar-column is-company-1"><a href="/about" class="dropdown-title links-item w-inline-block"><p class="text-22-copy weight-semibold">About</p></a><a href="/careers" class="dropdown-title links-item w-inline-block"><p class="text-22-copy weight-semibold">Careers</p></a><a href="/contact" class="dropdown-title links-item w-inline-block"><p class="text-22-copy weight-semibold">Contact</p></a><a href="/support" class="dropdown-title links-item w-inline-block"><p class="text-22-copy weight-semibold">Support</p></a><a href="/newsroom" class="dropdown-title links-item w-inline-block"><p class="text-22-copy weight-semibold">Newsroom</p></a><a href="/ai-pcb-design-for-startups" class="dropdown-title links-item w-inline-block"><p class="text-22-copy weight-semibold">Quilter for Startups</p></a><a href="/free-ai-pcb-design" class="dropdown-title links-item w-inline-block"><p class="text-22-copy weight-semibold">Quilter for Free</p></a></div><div class="navbar-column is-company-2"><a href="/blog" class="dropdown-title links-item w-inline-block"><p class="text-22-copy weight-semibold">Team Insights</p></a><div class="team-insight-cms w-dyn-list"><div role="list" class="team-insight-list w-dyn-items"><div role="listitem" class="team-insight-cms-item w-dyn-item"><a href="/blog/bet-big-break-rules-a-fireside-with-sergiy-nesterenko" class="team-insight-item w-inline-block"><img src="https://cdn.prod.website-files.com/68bb346f5bba4f35114aabb4/6a8dd55973f83a9e8c7fedf1_6a8dd2deca8b2d1827fdbf4f_insights-sergiy-blue.webp" loading="lazy" width="Auto" alt="Cover image for: Bet Big, Break Rules — A Fireside with Sergiy Nesterenko" class="insights-image"/><p class="text-16 currentcolor">Bet Big, Break Rules — A Fireside with Sergiy Nesterenko</p></a></div></div></div></div><div class="dropdown-right"><a href="/careers" class="dropdown-title links-item w-inline-block"><p class="text-22-copy weight-semibold">Open Roles</p></a><div><div class="tag-wrapper padding-20"><p class="tag-filled">Featured</p></div><div class="career-list-main-wrap w-dyn-list"><div role="list" class="career-list w-dyn-items"><div role="listitem" class="careers-list-item w-dyn-item"><a href="https://jobs.ashbyhq.com/quilter/2b86fe2e-f018-419f-b8a6-320cbc53ecfb" class="open-roles-link w-inline-block"><div class="career-inner-wrap"><div class="careers-list-item-content"><div><h5 class="text-16-copy">Senior/Staff Software Engineer (C++)</h5></div><div class="careers-tag-list"><div class="text-12-copy">US Time zone</div><div class="text-12-copy">Full time</div><div class="text-12-copy">Remote</div><div class="text-12-copy">Engineering</div></div></div><div class="open-roles-btn"><div class="text-block-4">Apply</div></div></div></a></div><div role="listitem" class="careers-list-item w-dyn-item"><a href="https://jobs.ashbyhq.com/quilter/fc8e718c-c1c5-4736-8147-532304949f6e" class="open-roles-link w-inline-block"><div class="career-inner-wrap"><div class="careers-list-item-content"><div><h5 class="text-16-copy">Senior/Staff Backend Engineer - PCB CAD Integration</h5></div><div class="careers-tag-list"><div class="text-12-copy">US Time zone</div><div class="text-12-copy">Full time</div><div class="text-12-copy">Remote</div><div class="text-12-copy">Engineering</div></div></div><div class="open-roles-btn"><div class="text-block-4">Apply</div></div></div></a></div><div role="listitem" class="careers-list-item w-dyn-item"><a href="https://jobs.ashbyhq.com/quilter/66f75202-c2f2-4f7f-acae-f3f01e8bfdbe" class="open-roles-link w-inline-block"><div class="career-inner-wrap"><div class="careers-list-item-content"><div><h5 class="text-16-copy">Senior/Staff ML Systems Engineer</h5></div><div class="careers-tag-list"><div class="text-12-copy">US Time zone</div><div class="text-12-copy">Full time</div><div class="text-12-copy">Remote</div><div class="text-12-copy">Engineering</div></div></div><div class="open-roles-btn"><div class="text-block-4">Apply</div></div></div></a></div></div></div></div></div></div></div></div></div></div></div></div></div><div class="navbar-right-wrapper"><div class="language-switcher-wrapper"><div data-hover="false" data-delay="0" data-w-id="4f6086e3-21dc-66a3-ca2c-9fb216292af1" class="langua
458ge-dropdown w-dropdown"><div class="language-dropdown-toggle w-dropdown-toggle"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/69427d1d0e7c5f335ff89146_language-icon.svg" loading="lazy" alt="" class="language-icon"/><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/69427d1da6ae802539807674_language-switcher-arrow.svg" loading="lazy" alt=""/></div><nav class="language-dropdown-content w-dropdown-list"><div class="locales-wrapper w-locales-list"><div role="list" class="locales-list w-locales-items"><div role="listitem" class="locales-item w-locales-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/694392c835e66a988999b020_flag-usa.svg" loading="lazy" alt="" class="locale-image"/><a href="/?r=0" aria-current="page" class="language-link w--current">English</a></div><div role="listitem" class="locales-item w-locales-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/694392cf0ccc25d60cb80a76_flag-japan.svg" loading="lazy" alt="" class="locale-image"/><a href="/ja" class="language-link">日本語</a></div><div role="listitem" class="locales-item w-locales-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/69f2425d3d3d02e0506c5210_Flag_of_Germany-20.svg" loading="lazy" alt="" class="locale-image"/><a href="/de" class="language-link">German</a></div></div></div></nav></div></div><a href="https://app.quilter.ai/sign-in" target="_blank" class="log-in-btn">Log in</a><div class="ab-default"><a href="/demo" data-wf-event-ids="157088869" class="btn-outline is-small is-active w-inline-block"><div>Talk to an Engineer</div><div class="secondary_btn-arrow is-small w-embed"><svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
459<circle cx="14" cy="14" r="13.4" stroke="currentColor" stroke-width="1.2"/>
460<path d="M17.3941 17.3943L17.3941 10.606L10.6059 10.606" stroke="currentColor" stroke-width="1.2"/>
461<path d="M10.6055 17.3955L17.3937 10.6073" stroke="currentColor" stroke-width="1.2"/>
462</svg></div></a><a href="/demo" data-wf-event-ids="157088869" class="secondary_btn is-active no-margin w-inline-block"><div class="text-block">Talk to an Engineer</div><div class="secondary_btn-arrow w-embed"><svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
463<circle cx="14" cy="14" r="13.4" stroke="currentColor" stroke-width="1.2"/>
464<path d="M17.3941 17.3943L17.3941 10.606L10.6059 10.606" stroke="currentColor" stroke-width="1.2"/>
465<path d="M10.6055 17.3955L17.3937 10.6073" stroke="currentColor" stroke-width="1.2"/>
466</svg></div></a></div></div></div><div class="mobile-menu-wrapper"><div class="language-switcher-wrapper is-mobile"><div data-hover="false" data-delay="0" data-w-id="5d098b87-f393-d629-c3ae-d566743dfeaa" class="language-dropdown w-dropdown"><div class="language-dropdown-toggle w-dropdown-toggle"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/69427d1d0e7c5f335ff89146_language-icon.svg" loading="lazy" alt="" class="language-icon"/><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/69427d1da6ae802539807674_language-switcher-arrow.svg" loading="lazy" data-w-id="5d098b87-f393-d629-c3ae-d566743dfead" alt=""/></div><nav class="language-dropdown-content w-dropdown-list"><div class="locales-wrapper w-locales-list"><div role="list" class="locales-list w-locales-items"><div role="listitem" class="locales-item w-locales-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/694392c835e66a988999b020_flag-usa.svg" loading="lazy" alt="" class="locale-image"/><a href="/?r=0" aria-current="page" class="language-link w--current">English</a></div><div role="listitem" class="locales-item w-locales-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/694392cf0ccc25d60cb80a76_flag-japan.svg" loading="lazy" alt="" class="locale-image"/><a href="/ja" class="language-link">日本語</a></div><div role="listitem" class="locales-item w-locales-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/69f2425d3d3d02e0506c5210_Flag_of_Germany-20.svg" loading="lazy" alt="" class="locale-image"/><a href="/de" class="language-link">German</a></div></div></div></nav></div></div><a href="#" class="navbar-btn w-inline-block"><img width="20" loading="lazy" alt="" src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6925ed59064e9edbe1d3e931_mega-menu.svg" class="navbar-btn-open"/><img loading="lazy" src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6925ee1d0c5926b6273997cc_Close.svg" alt="" class="navbar-btn-close"/></a></div></div></div></div></div></div></div></div><main class="main-wrapper"><section id="top" class="section_hero"><div class="padding-global padding-section-large"><div class="container-large"><div class="home_hero-content-wrap is-centered gap-0"><div class="learn-more-title-wrapper"><h1 class="hero_title-text">Physics-Driven AI That <span class="green-text">Automates </span>
466PCB Layout</h1><p class="text-20 hero_description">Quilter is physics-driven AI that automates PCB placement and routing. </p></div><div class="non-commercial_header-btn-wrap is-centered"><a href="/demo" class="secondary_btn is-active w-inline-block"><div class="text-block">Talk to an Engineer</div><div class="secondary_btn-arrow w-embed"><svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
467<circle cx="14" cy="14" r="13.4" stroke="currentColor" stroke-width="1.2"/>
468<path d="M17.3941 17.3943L17.3941 10.606L10.6059 10.606" stroke="currentColor" stroke-width="1.2"/>
469<path d="M10.6055 17.3955L17.3937 10.6073" stroke="currentColor" stroke-width="1.2"/>
470</svg></div></a></div><div class="partners-wrapper"><p class="text-22">Trusted Industry Partners:</p><div class="partners-grid"><div class="partners-grid-item is-1"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a3d30dfab5a9947dcbba94e_aws.svg" loading="lazy" alt="AWS, a Quilter industry partner"/></div><div class="partners-grid-item is-2"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a3d30dfa1e8c27a79841219_nvidia.svg" loading="lazy" alt="NVIDIA, a Quilter industry partner"/></div><div class="partners-grid-item is-3"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a3d30df60381d6765fadec9_siemens.svg" loading="lazy" alt="Siemens, a Quilter industry partner"/></div></div></div></div><div class="sw-ship"><div class="w-embed w-script"><!-- Home hero: the SAME pinned scroll-scrub as /project-speedrun.
471
472     The board sticks to the middle of the viewport and the clip advances with
473     scroll while it is held there, then releases and scrolls away.
474
475     Uses the scrub encode (-g 5, keyframe every 1/6s), NOT the ping-pong. A
476     ping-pong has no direction, so scroll position has nothing to map to.
477
478     THREE DELIBERATE DIFFERENCES FROM THE SPEEDRUN COPY:
479
480     1. NO GLOW. /project-speedrun has .quilter-computer-bg behind the board.
481        This page has no such element (checked: 0 occurrences) - the hero is
482        flat black - so the .spd-glow div and the whole hand-over are dropped.
483
484     2. THE LIFT MEASURES A DIFFERENT ELEMENT. On speedrun the board follows the
485        h1 directly, so the floor is the h1 bottom. Here the embed sits in
486        .sw-ship BELOW the h1, description, CTA and the partners logo row, so the
487        floor is the bottom of .home_hero-content-wrap.
488
489     3. pointer-events:none ON .spd-scroll, because the block overlaps the CTA
490        and the logos. The video re-enables pointer events on itself in
491        reduced-motion mode, which works because a descendant can turn them back
492        on under a 'none' ancestor.
493
494     BOARD_TOP IS FRAME 0, THE RESTING FRAME. Measured per frame:
495       frame 0, board in perspective -> board top at 40.8% of frame = 35.65% of
496         the visible box after the 8% crop;
497       final flat top-down board     -> board top at 17.2% of frame = 10.00% of
498         the visible box.
499     Frame 0 is what a visitor sees before scrolling, so it is what the gap has
500     to be measured against. Reserving clearance against the flat board instead
501     (BOARD_TOP 0.10) pushes the block down by 0.2565 * wrapH - 186px at a 724px
502     wrap - which put the board entirely below the fold on a laptop.
503
504     THE GAP IS ADAPTIVE, BECAUSE TWO THINGS HAVE TO BE TRUE AT ONCE: the board
505     must clear the partners row, and it must be visible above the fold. A fixed
506     gap cannot do both - at 1512x748, where the hero copy ends at 560, a 96px
507     gap leaves only 74px of board on screen. So the gap is squeezed down to
508     whatever still shows REVEAL px of board, and floored at GAP_MIN so it can
509     never collapse into the logos:
510       gap = clamp(innerHeight - REVEAL - feBottom, GAP_MIN, GAP_MAX)
511     1512x748 -> gap 40, 148px of board above the fold.
512     1440x900 -> gap 96, 226px of board above the fold.
513     Clearance is never below GAP_MIN, so the collision the old value guarded
514     against cannot happen at rest.
515
516     The flat board does ride higher than frame 0, but it only appears near the
517     END of the scrub, by which point the partners row has scrolled off. Swept
518     in 30px steps at 748px, 900px and 1400px viewport heights: while the row is
519     still on screen the clearance never goes below the resting gap, because the
520     row scrolls up faster than the board rises.
521
522     Components also drop in from 0% of frame height, but those are inside the
523     mask's fade (transparent to 8%, opaque by 16%) and are sparse falling parts,
524     not a solid edge - the fade is what handles them, not the gap.
525
526     Crop and fade, measured off the frames: hard crop 8% of height (= 6.33% of
527     width; percentage margins resolve against width), fade fully opaque by 16%
528     so it never eats the flat board's top silkscreen row. -->
529<svg width="0" height="0" style="position:absolute;width:0;height:0" aria-hidden="true" focusable="false">
530  <filter id="qtr-knockout" color-interpolation-filters="sRGB">
531    <feColorMatrix type="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0.2126 0.7152 0.0722 0 0"/>
532    <feComponentTransfer><feFuncA type="linear" slope="18" intercept="0"/></feComponentTransfer>
533  </filter>
534</svg>
535<style>
536  .section_hero .padding-section-large { padding-top: 3rem; padding-bottom: 3rem; }
537  .sw-ship { padding-top: 0; margin-top: 0; }
538  /* pointer-events: see note 3 above - the block overlaps the CTA. */
539  .spd-scroll { position: relative; pointer-events: none; }
540  .spd-stick { position: relative; display: flex; align-items: center; justify-content: center; }
541  .spd-scroll.is-scrub > .spd-stick { position: -webkit-sticky; position: sticky; }
542  .speedrun-loop-wrap {
543    position: relative; z-index: 1;
544    width: 100%; margin: 0 auto; overflow: hidden;
545    max-width: min(62.125rem, calc((100vh - 96px) * 1.373));
546  }
547  .speedrun-loop {
548    display: block; width: 100%; height: auto; margin: -6.33% auto 0; pointer-events: none;
549    filter: url(#qtr-knockout);
550    -webkit-mask-image: linear-gradient(to bottom, transparent 0, transparent 8%, rgba(0,0,0,.35) 10.5%, rgba(0,0,0,.8) 13.5%, #000 16%, #000 97%, transparent 100%), linear-gradient(to right, transparent 0, #000 3%, #000 97%, transparent 100%);
551    mask-image: linear-gradient(to bottom, transparent 0, transparent 8%, rgba(0,0,0,.35) 10.5%, rgba(0,0,0,.8) 13.5%, #000 16%, #000 97%, transparent 100%), linear-gradient(to right, transparent 0, #000 3%, #000 97%, transparent 100%);
552    -webkit-mask-composite: source-in; mask-composite: intersect;
553    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
554    -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
555  }
556</style>
557<div class="spd-scroll">
558  <div class="spd-stick">
559    <div class="speedrun-loop-wrap">
560      <video class="speedrun-loop" muted playsinline preload="auto"
561             poster="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6aac68937d67b3ee04850810_speedrun-board-v2-poster.webp">
562        <source src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6aad1e8886dc60583305a711_speedrun-board-scrub.mp4" type="video/mp4">
563      </video>
564    </div>
565  </div>
566</div>
567<script>
568(function () {
569  var s = document.currentScript;
570  var root = s && s.parentElement;
571  if (!root) return;
572  var scroller = root.querySelector('.spd-scroll');
573  var stick = root.querySelector('.spd-stick');
574  var wrap = root.querySelector('.speedrun-loop-wrap');
575  var v = root.querySelector('video.speedrun-loop');
576  if (!scroller || !stick || !wrap || !v) return;
577
578  /* BOARD_TOP: fraction of the VISIBLE box at which frame 0's board top sits.
579     (40.8 - 8) / 92 = 0.3565. A measurement, not a preference.
580     GAP_MIN / GAP_MAX / REVEAL are the preferences - see the note above. */
581  var BOARD_TOP = 0.3565, GAP_MIN = 40, GAP_MAX = 96, REVEAL = 150,
582      MAX_LIFT = 320, MAX_PUSH = 220;
583
584  function floorEl() {
585    return document.querySelector('.section_hero .home_hero-content-wrap')
586        || document.querySelector('.section_hero .hero_title-text');
587  }
588
589  var mqReduce = window.matchMedia('(prefers-reduced-motion: reduce)');
590  var mqLoop = window.matchMedia('(hover: none), (max-width: 991px)');
591
592  var mode = null, dur = 0, startY = 0, range = 900, last = -1, raf = null;
593
594  function sy() { return window.pageYOffset || document.documentElement.scrollTop; }
595
596  function docTop(el) { var y = 0; while (el) { y += el.offsetTop; el = el.offsetParent; } return y; }
597
598  function measure() {
599    /* Measure with the pin OFF but the height KEPT. Resetting the height here (the
600       old way) shrank the page mid-measure when reloading deep in the pinned
601       range; the browser clamped the scroll and the lift came out wrong, parking
602       the board on the hero content once you scrolled back up. */
603    scroller.classList.remove('is-scrub');
604    stick.style.top = '';   /* an inline top on a non-sticky box would offset it */
605    var wrapH = wrap.getBoundingClientRect().height;
606    if (!wrapH) { scroller.classList.add('is-scrub'); return; }
607
608    range = Math.min(Math.round(window.innerHeight * 1.05), 900);
609    var st = Math.max(8, Math.round((window.innerHeight - wrapH) / 2));
610
611    /* Squeeze the gap until REVEAL px of board sits above the fold, but never
612       below GAP_MIN, so the board cannot collapse into the partners row.
613       Layout offsets, not rects, so the result is the same at any scroll
614       position; measured because DE/JA headlines wrap to different heights.
615       mt = margin currently applied (negative = lifted). */
616    var mt = parseFloat(scroller.style.marginTop) || 0;
617    var fe = floorEl();
618    var feBottom = fe ? (docTop(fe) + fe.offsetHeight) : 0;
619    var gap = window.innerHeight - REVEAL - feBottom;
620    gap = Math.max(GAP_MIN, Math.min(GAP_MAX, gap));
621
622    var boardTop = docTop(wrap) + wrapH * BOARD_TOP - mt;
623    var lift = Math.round(boardTop - (feBottom + gap));
624    lift = Math.max(-MAX_PUSH, Math.min(MAX_LIFT, lift));
625
626    scroller.style.height = Math.round(wrapH + range) + 'px';
627    scroller.style.marginTop = (-lift) + 'px';
628    stick.style.top = st + 'px';
629    scroller.classList.add('is-scrub');
630
631    startY = Math.round(scroller.getBoundingClientRect().top + sy() - st);
632  }
633
634  function apply() {
635    raf = null;
636    if (!dur) return;
637    var pr = (sy() - startY) / range;
638    pr = pr < 0 ? 0 : (pr > 1 ? 1 : pr);
639    var t = pr * (dur - 0.06);
640    if (last >= 0 && Math.abs(t - last) < 0.03) return;
641    last = t;
642    try { v.currentTime = t; } catch (e) {}
643  }
644
645  function onScroll() { if (!raf) raf = window.requestAnimationFrame(apply); }
646  function onResize() { measure(); onScroll(); }
647
648  function teardown() {
649    window.removeEventListener('scroll', onScroll);
650    window.removeEventListener('resize', onResize);
651    if (raf) { window.cancelAnimationFrame(raf); raf = null; }
652    scroller.classList.remove('is-scrub');
653    scroller.style.height = '';
654    scroller.style.marginTop = '';
655    stick.style.top = '';
656  }
657
658  function setMode(next) {
659    if (next === mode) return;
660    teardown();
661    mode = next;
662
663    if (next === 'static') {
664      v.pause(); v.removeAttribute('loop');
665      v.setAttribute('controls', ''); v.style.pointerEvents = 'auto';
666      return;
667    }
668
669    v.removeAttribute('controls'); v.style.pointerEvents = 'none';
670
671    if (next === 'loop') {
672      v.setAttribute('loop', ''); v.muted = true;
673      var p = v.play(); if (p && p.catch) p.catch(function () {});
674      return;
675    }
676
677    v.removeAttribute('loop'); v.pause();
678    scroller.classList.add('is-scrub');
679    last = -1; measure(); apply();
680    window.addEventListener('scroll', onScroll, { passive: true });
681    window.addEventListener('resize', onResize);
682  }
683
684  function pick() {
685    setMode(mqReduce.matches ? 'static' : (mqLoop.matches ? 'loop' : 'scrub'));
686    watchLate();
687  }
688
689  /* The lift is measured against the hero content, so anything that resizes it
690     AFTER the first measure (late web font, A/B or consent scripts on a fresh
691     visit) would leave the board on top of it. Re-measure whenever that happens. */
692  var watching = false;
693  function remeasure() { if (mode === 'scrub') { measure(); last = -1; apply(); } }
694  function watchLate() {
695    if (watching) return; watching = true;
696    var fe = floorEl();
697    if (window.ResizeObserver && fe) { new ResizeObserver(function () { remeasure(); }).observe(fe); }
698    if (document.fonts && document.fonts.ready) document.fonts.ready.then(remeasure);
699    window.addEventListener('load', remeasure, { once: true });
700    [400, 1200, 3000].forEach(function (t) { setTimeout(remeasure, t); });
701  }
702
703  function listen(mq) {
704    if (mq.addEventListener) mq.addEventListener('change', pick);
705    else if (mq.addListener) mq.addListener(pick);
706  }
707  listen(mqReduce); listen(mqLoop);
708
709  function start() {
710    dur = v.duration || 0;
711    if (!dur) return;
712    if (document.readyState === 'loading') {
713      document.addEventListener('DOMContentLoaded', pick, { once: true });
714    } else { pick(); }
715  }
716  if (v.readyState >= 1) start();
717  else v.addEventListener('loadedmetadata', start, { once: true });
718})();
719</script>
719</div></div></div></div><div class="home_hero-bg-img hide"><div class="container-large"><div class="bg_wrap"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/68b7918b99fa38e5185dc4f7_hero-brand-bg-graphic.svg" loading="lazy" alt="" class="home_hero-img-v2 hide"/><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/68c5d75c77d8b9e652eb1bc2_solutions-bg.svg" loading="lazy" alt=""/></div></div></div></section><section id="upload-flow" class="section-default hide"><div class="padding-global padding-section-large"><div class="container-large"><div class="product-text-wrapper"><h2 class="text-50 text-center">What Happens When You Upload Your Project to <span class="green-text">Quilter</span></h2></div><div class="w-embed w-script"><!-- Quilter flow — 7-step animated section.
720     Markup only. The 46KB stylesheet is linked from the page's head custom
721     code; the 70KB script is a hosted Webflow asset, loaded below.
722     Do NOT paste the script back inline: it is a single IIFE, so splitting it
723     across multiple embeds (the old approach) produces a syntax error and
724     nothing runs. -->
725<div id="quilter-flow"><div class="wrap">
726<div class="stepper" id="qf-stepper"></div>
727<div class="card" id="qf-card">
728<div class="card-head"><span class="badge" id="qf-badge">1</span><div><h2 id="qf-title"></h2><p id="qf-blurb"></p></div></div>
729<div class="media" id="qf-media">
730<button class="replay" id="qf-replay" aria-label="Replay animation"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 1 0 3-6.7L3 8"/><path d="M3 3v5h5"/></svg></button>
731<div id="stage"></div></div>
732<div class="nav">
733<button class="nav-btn" id="qf-prev"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 18l-6-6 6-6"/></svg>Previous</button>
734<div class="nav-dots" id="qf-dots"></div>
735<button class="nav-btn" id="qf-next">Next<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18l6-6-6-6"/></svg></button>
736</div></div></div></div>
737
738<script defer src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6769854fa03f919cf96c7c_quilter-flow.js"></script>
738</div></div></div></section><section id="layout-comparison" class="section-default"><div class="padding-global padding-section-large"><div class="container-large"><div class="manual-layout-wrapper"><h2 class="text-50">Manual Layout vs <span class="green-text">Layout Automation </span>with Quilter</h2><div class="manual-layout-right"><p class="text-18">The layout work that professionals quoted at 428 hours took 38.5 hours of human cleanup with Quilter.</p></div></div><div><div class="w-embed w-script"><div class="qtr-wrap">
739  <style>
740    .qtr-wrap{background:#000;color:#fff;font-family:inherit}
741    .qtr-wrap *{box-sizing:border-box}
742    .qtr-title{text-align:center;margin:0 0 0.625rem}
743    .qtr-title .qtr-accent{color:#696969}
744    .qtr-title .qtr-accent-b{color:#007BFF}
745    .qtr-rule{height:1px;background:#696969;opacity:.35;margin:0 0 2.5rem}
746
747    .qtr-scroll{overflow:visible}
748
749    /* grid: n-label col + 7 flexible day cols */
750    .qtr-grid{display:grid;grid-template-columns:1.75rem repeat(7,1fr);gap:0.625rem;align-items:start}
751    .qtr-dayhead{color:#696969;text-align:center}
752    .qtr-nlabel{color:#696969;display:flex;align-items:center;height:2.625rem}
753
754    .qtr-box{height:2.625rem;padding:0 0.875rem;border-radius:0.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;font-size:0.75rem;display:flex;align-items:center;justify-content:flex-start}
755    .qtr-faded{background:#191919;color:#696969}
756    .qtr-active{background:#2E2E2E;color:#FFFFFF}
757    .qtr-light{background:#DDDDDD;color:#191919}
758    .qtr-blue{background:#007BFF;color:#FFFFFF}
759
760    .qtr-arrow{display:flex;justify-content:center;margin:2.5rem 0;position:static}
761    .qtr-arrow svg{display:block;width:24px;height:48px}
762
763    .qtr-footer{text-align:center;margin:5rem 0 0;line-height:1.4}
764    .qtr-footer a{color:#fff;text-decoration:none}
765    .qtr-footer .qtr-accent-b{color:#007BFF;margin-right:0.3em}
766    .qtr-footer img{display:inline-block;vertical-align:middle;height:1.125rem;margin-left:0.4rem}
767
768    /* ---- animation ---- */
769    .qtr-box{opacity:0;transform:translateY(10px);transition:opacity .7s ease,transform .7s ease}
770    .qtr-wrap.qtr-in .qtr-box{opacity:1;transform:translateY(0)}
771    .qtr-wrap.qtr-in .qtr-blue{animation:qtr-pulse 2s ease 1.2s 2}
772    @keyframes qtr-pulse{0%,100%{box-shadow:0 0 0 0 rgba(0,123,255,0)}50%{box-shadow:0 0 0 4px rgba(0,123,255,.35)}}
773    @media (prefers-reduced-motion:reduce){
774      .qtr-box{opacity:1;transform:none;transition:none}
775      .qtr-wrap.qtr-in .qtr-blue{animation:none}
776    }
777
778    /* ---- mobile: horizontal scroll ---- */
779    @media (max-width:768px){
780      .qtr-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:0.75rem}
781      .qtr-grid{grid-template-columns:1.75rem repeat(7,8rem);width:max-content}
782      .qtr-title,.qtr-footer{padding:0 1rem}
783      .qtr-footer{font-size:1.125rem;margin-top:3.5rem}
784      .qtr-footer img{height:1rem}
785    }
786  </style>
787
788  <!-- BEFORE -->
789  <div class="qtr-title text-22"><span class="qtr-accent">Before:</span> Manual Layout</div>
790  <div class="qtr-rule"></div>
791  <div class="qtr-scroll">
792    <div class="qtr-grid">
793      <!-- day headers -->
794      <div></div>
795      <div class="qtr-dayhead text-14">Mon</div>
796      <div class="qtr-dayhead text-14">Tue</div>
797      <div class="qtr-dayhead text-14">Wed</div>
798      <div class="qtr-dayhead text-14">Thu</div>
799      <div class="qtr-dayhead text-14">Fri</div>
800      <div class="qtr-dayhead text-14">Sat</div>
801      <div class="qtr-dayhead text-14">Sun</div>
802
803      <!-- n0 -->
804      <div class="qtr-nlabel text-14" style="grid-row:2">n0</div>
805      <div class="qtr-box qtr-active" style="grid-column:2;grid-row:2">Start Working on Layout</div>
806      <div class="qtr-box qtr-faded" style="grid-column:3 / span 6;grid-row:2">Layout in Progress</div>
807
808      <!-- n1 -->
809      <div class="qtr-nlabel text-14" style="grid-row:3">n1</div>
810      <div class="qtr-box qtr-faded" style="grid-column:2 / span 7;grid-row:3">Layout in Progress</div>
811
812      <!-- n2 -->
813      <div class="qtr-nlabel text-14" style="grid-row:4">n2</div>
814      <div class="qtr-box qtr-faded" style="grid-column:2 / span 7;grid-row:4">Layout in Progress</div>
815
816      <!-- n3 -->
817      <div class="qtr-nlabel text-14" style="grid-row:5">n3</div>
818      <div class="qtr-box qtr-faded" style="grid-column:2 / span 3;grid-row:5">Layout in Progress</div>
819      <div class="qtr-box qtr-active" style="grid-column:5 / span 2;grid-row:5">Engineer Reviews Draft and Requests Changes</div>
820      <div class="qtr-box qtr-faded" style="grid-column:7 / span 2;grid-row:5">Layout in Progress</div>
821
822      <!-- n4 -->
823      <div class="qtr-nlabel text-14" style="grid-row:6">n4</div>
824      <div class="qtr-box qtr-faded" style="grid-column:2;grid-row:6">Layout in Progress</div>
825      <div class="qtr-box qtr-active" style="grid-column:3 / span 2;grid-row:6">Engineer Reviews Final Layout</div>
826      <div class="qtr-box qtr-active" style="grid-column:5;grid-row:6">Submit to Fab</div>
827      <div class="qtr-box qtr-faded" style="grid-column:6 / span 3;grid-row:6">Fabrication and Assembly</div>
828
829      <!-- n5 -->
830      <div class="qtr-nlabel text-14" style="grid-row:7">n5</div>
831      <div class="qtr-box qtr-faded" style="grid-column:2 / span 2;grid-row:7">Fabrication and Assembly</div>
832      <div class="qtr-box qtr-light" style="grid-column:4;grid-row:7">Board Arrives</div>
833    </div>
834  </div>
835
836  <!-- ARROW -->
837  <div class="qtr-arrow">
838    <svg viewBox="0 0 24 48" fill="none" xmlns="http://www.w3.org/2000/svg">
839      <path d="M12 0V44" stroke="#007BFF" stroke-width="2"/>
840      <path d="M4 36L12 46L20 36" stroke="#007BFF" stroke-width="2" fill="none"/>
841    </svg>
842  </div>
843
844  <!-- AFTER -->
845  <div class="qtr-title text-22"><span class="qtr-accent-b">After:</span> Layout with Quilter</div>
846  <div class="qtr-rule"></div>
847  <div class="qtr-scroll">
848    <div class="qtr-grid">
849      <div></div>
850      <div class="qtr-dayhead text-14">Mon</div>
851      <div class="qtr-dayhead text-14">Tue</div>
852      <div class="qtr-dayhead text-14">Wed</div>
853      <div class="qtr-dayhead text-14">Thu</div>
854      <div class="qtr-dayhead text-14">Fri</div>
855      <div class="qtr-dayhead text-14">Sat</div>
856      <div class="qtr-dayhead text-14">Sun</div>
857
858      <!-- n0 -->
859      <div class="qtr-nlabel text-14" style="grid-row:2">n0</div>
860      <div class="qtr-box qtr-active" style="grid-column:6;grid-row:2">Submit to Quilter</div>
861      <div class="qtr-box qtr-blue" style="grid-column:7 / span 2;grid-row:2">Quilter Generates 100s of Candidates</div>
862
863      <!-- n1 -->
864      <div class="qtr-nlabel text-14" style="grid-row:3">n1</div>
865      <div class="qtr-box qtr-active" style="grid-column:2 / span 3;grid-row:3">Engineer Reviews Candidates and Makes Adjustments</div>
866      <div class="qtr-box qtr-active" style="grid-column:5;grid-row:3">Submit to Fab</div>
867      <div class="qtr-box qtr-faded" style="grid-column:6 / span 3;grid-row:3">
867Fabrication and Assembly</div>
868
869      <!-- n2 -->
870      <div class="qtr-nlabel text-14" style="grid-row:4">n2</div>
871      <div class="qtr-box qtr-faded" style="grid-column:2 / span 2;grid-row:4">Fabrication and Assembly</div>
872      <div class="qtr-box qtr-blue" style="grid-column:4;grid-row:4">Board Arrives</div>
873    </div>
874  </div>
875
876  <div class="qtr-footer text-22">
877    <a href="/project-speedrun"><span class="qtr-accent-b">Learn more</span> about Project Speedrun<img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a45296a2117bd392d90d7d1_Arrow-Circle.svg" alt=""></a>
878  </div>
879</div>
880
881<script>
882(function(){
883  var wrap=document.currentScript.previousElementSibling;
884  var boxes=wrap.querySelectorAll('.qtr-box');
885  boxes.forEach(function(b,i){b.style.transitionDelay=(i*0.14)+'s';});
886  var io=new IntersectionObserver(function(entries){
887    entries.forEach(function(e){
888      if(e.isIntersecting){wrap.classList.add('qtr-in');io.disconnect();}
889    });
890  },{threshold:0,rootMargin:'0px 0px -35% 0px'});
891  io.observe(wrap);
892})();
893</script>
893</div></div></div></div></section><section id="why-quilter" class="section-default"><div class="padding-global padding-section-large"><div class="container-large"><div><div class="solutions_header"><h2 class="solutions_heading section_heading is-centered"><span class="green-text">Why</span> Teams Choose Quilter</h2></div><div class="why-teams-wrapper"><div class="why-teams-wrapper-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a450f0be202d6073d761f86_scale_icon.svg" loading="lazy" alt="" class="icon-40"/><div class="why-teams-wrapper-item-content"><p class="text-22">Scale Without Hiring</p><p class="text-18">Add boards, not headcount. Layout talent is scarce, and designs sit on hold waiting for it. Quilter runs multiple boards in parallel overnight, so the backlog clears with the team you have.</p></div></div><div class="why-teams-wrapper-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a450f0da1f899dc1480f978_scale_icon-2.svg" loading="lazy" alt="" class="icon-40"/><div class="why-teams-wrapper-item-content"><p class="text-22">Compress Delivery Timelines</p><p class="text-18">Boards that took 4 to 8 weeks now come back in days. Your firmware team stops waiting. Your validation starts sooner. Run 2 or 3 iterations in the time one used to take.</p></div></div><div class="why-teams-wrapper-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a450f0ba234a9ec54a6e820_check_icon-quilter.svg" loading="lazy" alt="" class="icon-40"/><div class="why-teams-wrapper-item-content"><p class="text-22">Validated AI for Hardware</p><p class="text-18">Most enterprise AI pilots stall in proof of concept. Hardware teams in consumer electronics, aerospace, and defense are using Quilter to design boards reaching fabrication today.</p></div></div></div></div><div class="native-support-wrapper"><div class="solutions_header"><h2 class="text-40 font-kabyta text-weight-semibold text-centered">Native Support for All Popular ECAD Formats</h2></div><div class="ecad-formats-grid"><div class="ecad-formats-grid-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a451ffed5328db037da4bc7_cadence.svg" loading="lazy" alt="Cadence ECAD format supported by Quilter"/></div><div class="ecad-formats-grid-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a451ffed8e9184c17e3d038_altium.svg" loading="lazy" alt="Altium Designer supported by Quilter"/></div><div class="ecad-formats-grid-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a451ffe2068be16adfb210d_KiCad-Logo%202.svg" loading="lazy" alt="KiCad ECAD format supported by Quilter"/></div><div class="ecad-formats-grid-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a451ffe780bd971b749c80e_OrCAD_Logo%201.svg" loading="lazy" alt="OrCAD ECAD format supported by Quilter"/></div><div class="ecad-formats-grid-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a451ffe92ab1081b584a9c3_Xpedition.svg" loading="lazy" alt="Siemens Xpedition ECAD format supported by Quilter"/></div></div></div></div></div></section><section id="how-quilter-works" class="section-default"><div class="padding-global padding-section-large"><div class="container-large"><div class="w-embed"><!-- "How Quilter Works" — heading, supporting copy, ECAD → Quilter flow diagram.
894     Typography follows Figma node 3295:271 (card titles Inter Medium 500/14,
895     icon + band labels Inter Regular 400/12 and 400/16, body Inter 400/18),
896     scaled up by the SVG's 2000/1170 viewBox factor.
897     Heading size is 50px desktop / 40px tablet-and-below per client, overriding
898     Figma's 60px.
899     Sits on the site's DARK section: heading is white, body copy uses
900     --body-text. The diagram carries its own light surface so its dark text
901     stays readable. -->
902<style>
903  .qf2{width:100%;display:flex;flex-direction:column;align-items:center;gap:48px;
904       font-family:var(--inter,Inter),Inter,system-ui,sans-serif;color:#000}
905  /* "How" is white; "Quilter Works" is brand blue via the span below. */
906  .qf2-title{margin:0;text-align:center;color:#fff;
907       font-family:var(--apk-protocol,"Aeonik Pro"),"Aeonik Pro",Arial,sans-serif;
908       font-weight:300;font-size:50px;line-height:1;letter-spacing:-.03em}
909  /* 991px is Webflow's tablet breakpoint — 50px desktop, 40px tablet and below */
910  @media (max-width:991px){.qf2-title{font-size:40px}}
911  /* inline, not block — heading reads on a single line */
912  .qf2-title span{color:#007bff}
913  .qf2-figure{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:12px 0}
914  .qf2-figure svg{display:block;width:100%;height:auto}
915  @media (max-width:900px){.qf2-figure svg{min-width:860px}}
916  .qf2-copy{max-width:860px;display:flex;flex-direction:column;align-items:center;
917       gap:25px;text-align:center}
918  .qf2-copy p{margin:0;font-size:18px;font-weight:400;line-height:1.5;letter-spacing:-.02em;
919       color:var(--body-text,#ddd)}
920  /* needs p.qf2-cta, not .qf2-cta — ".qf2-copy p" above would otherwise win on
921     specificity and hold the link at the 18px body size */
922  .qf2-copy p.qf2-cta{font-size:16px;letter-spacing:normal;line-height:1}
923  /* The CTA is a button, matching the site's outline button (.secondary_btn):
924     1px #007bff, 10px radius, Space Grotesk 16/400, filling blue on hover.
925     The arrow lives inside the <a> so the whole thing is one target. */
926  .qf2-cta a{display:inline-flex;align-items:center;gap:10px;
927       padding:16px 24px;border:1px solid #007bff;border-radius:10px;
928       font-family:var(--space-grotesk,"Space Grotesk"),"Space Grotesk",Arial,sans-serif;
929       font-size:16px;font-weight:400;line-height:1;color:#007bff;
930       background:transparent;text-decoration:none;
931       transition:background-color .2s ease,color .2s ease}
932  .qf2-cta a:hover{background:#007bff;color:#000}
933  .qf2-cta a span{transition:transform .2s ease}
934  .qf2-cta a:hover span{transform:translateX(3px)}
935
936  /* Reading order: heading → explanation → diagram → link. .qf2-copy becomes
937     display:contents so its two paragraphs are direct flex children of .qf2
938     and can be ordered around the figure; the max-width, centring and gap that
939     .qf2-copy used to supply move onto the paragraphs themselves. */
940  .qf2-copy{display:contents}
941  .qf2-copy>p{max-width:860px;text-align:center}
942  .qf2-title{order:1}
943  .qf2-copy>p{order:2}
944  .qf2-figure{order:3}
945  .qf2-copy>p.qf2-cta{order:4}
946
947  @media (max-width:700px){.qf2{gap:36px}}
948</style>
949
950<div class="qf2">
951
952<h2 class="qf2-title">How <span>Quilter Works</span></h2>
953
954<div class="qf2-figure">
955<svg viewBox="0 0 2000 1018" xmlns="http://www.w3.org/2000/svg" role="img"
956     aria-label="Design flow: ECAD design files feed into Quilter, which defines design context, generates candidates with the Quilter Engine, and returns them for review, edit and design review.">
957<defs>
958  <marker id="qf2a" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
959    <path d="M0,0 L10,5 L0,10 z" fill="#000"/>
960  </marker>
961  <style>
962    .qf2-t{font-family:Inter,system-ui,sans-serif;fill:#000;letter-spacing:-.02em}
963    .qf2-h{font-size:24px;font-weight:500}
964    .qf2-l{font-size:20.5px;font-weight:400}
965    .qf2-band{font-size:27.4px;font-weight:400}
966    .qf2-w{stroke:#000;stroke-width:2;fill:none;marker-end:url(#qf2a)}
967    .qf2-d{stroke-dasharray:9 8}
968  </style>
969</defs>
970
971<!-- One continuous grey surface behind the whole diagram. Previously the two
972     bands were separate rects with a gap between them, so on the black page
973     that gap showed through: the ECAD and Quilter zones read as detached and
974     the arrows crossing the gap looked cut. The grey now runs edge to edge,
975     with the blue Quilter zone sitting flush on top of it. -->
976<rect fill="#f5f5f5" x="0" y="0" width="2000" height="1018" rx="21"/>
977<rect fill="#e6f2ff" x="0" y="428" width="2000" height="590" rx="21"/>
978<text class="qf2-t qf2-band" x="52" y="78">ECAD</text>
979<text class="qf2-t qf2-band" x="52" y="965" fill="#0021e7">Quilter</text>
980
981<path class="qf2-w" d="M426,348 V588 Q426,608 446,608 H512"/>
982<path class="qf2-w qf2-d" d="M1327,207 H775 Q755,207 755,227 V478"/>
983<path class="qf2-w qf2-d" d="M984,604 H1283"/>
984<path class="qf2-w" d="M752,718 V842 Q752,862 772,862 H918"/>
985<path class="qf2-w" d="M1252,862 H1442 Q1462,862 1462,842 V730"/>
986<path class="qf2-w" d="M1462,490 V317"/>
987<path class="qf2-w" d="M1590,207 H1643"/>
988
989<rect fill="#fff" x="197" y="98" width="458" height="250" rx="21"/>
990<text class="qf2-t qf2-h" x="426" y="158" text-anchor="middle">Prepare Your Design Files</text>
991<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccc00d599640ee50079a_qf2-schematic.svg" x="266" y="200" width="46" height="46"/>
992<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbe556592892616661f_qf2-board-outline.svg" x="402" y="200" width="46" height="46"/>
993<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbf55659289261666ee_qf2-fixed-components.svg" x="539" y="200" width="46" height="46"/>
994<text class="qf2-t qf2-l" x="289" y="283" text-anchor="middle">Schematic</text>
995<text class="qf2-t qf2-l" x="425" y="283" text-anchor="middle">Board Outline</text>
996<text class="qf2-t qf2-l" x="562" y="283" text-anchor="middle">Fixed</text>
997<text class="qf2-t qf2-l" x="562" y="306" text-anchor="middle">Components</text>
998
999<rect fill="#fff" x="1327" y="112" width="263" height="193" rx="21"/>
1000<text class="qf2-t qf2-h" x="1458" y="170" text-anchor="middle">Edit &amp; Clean Up</text>
1001<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbf070a816433c0ae48_qf2-edit-cleanup.svg" x="1435" y="208" width="46" height="46"/>
1002
1003<rect fill="#fff" x="1653" y="112" width="263" height="193" rx="21"/>
1004<text class="qf2-t qf2-h" x="1784" y="170" text-anchor="middle">Design Review</text>
1005<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbf6685a7aeb267f100_qf2-design-review.svg" x="1761" y="208" width="46" height="46"/>
1006
1007<rect fill="#fff" x="997" y="182" width="188" height="50" rx="10"/>
1008<text class="qf2-t qf2-l" x="1091" y="213" text-anchor="middle">Iteration Loop</text>
1009
1010<rect fill="#fff" x="524" y="490" width="456" height="228" rx="21"/>
1011<text class="qf2-t qf2-h" x="752" y="548" text-anchor="middle">Define Design Context</text>
1012<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbf03751affa3785a0e_qf2-stackup.svg" x="592" y="585" width="46" height="46"/>
1013<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbf55659289261666a0_qf2-constraints.svg" x="728" y="585" width="46" height="46"/>
1014<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbe5565928926166669_qf2-circuit-intent.svg" x="866" y="585" width="46" height="46"/>
1015<text class="qf2-t qf2-l" x="615" y="670" text-anchor="middle">Stackup</text>
1016<text class="qf2-t qf2-l" x="751" y="670" text-anchor="middle">Constraints</text>
1017<text class="qf2-t qf2-l" x="889" y="670" text-anchor="middle">Circuit Intent</text>
1018
1019<rect fill="#fff" x="1293" y="490" width="340" height="228" rx="21"/>
1020<text class="qf2-t qf2-h" x="1463" y="548" text-anchor="middle">Review Candidates</text>
1021<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccc0556592892616673e_qf2-placement.svg" x="1371" y="585" width="46" height="46"/>
1022<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccc0556592892616675d_qf2-routing.svg" x="1507" y="585" width="46" height="46"/>
1023<text class="qf2-t qf2-l" x="1394" y="670" text-anchor="middle">Placement</text>
1024<text class="qf2-t qf2-l" x="1530" y="670" text-anchor="middle">Routing</text>
1025
1026<rect fill="#fff" x="930" y="763" width="322" height="199" rx="21"/>
1027<text class="qf2-t qf2-h" x="1091" y="821" text-anchor="middle">Quilter Engine</text>
1028<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbf556592892616670d_qf2-quilter-engine.svg" x="1068" y="858" width="46" height="50"/>
1029</svg>
1030</div>
1031
1032<div class="qf2-copy">
1033  <p>Quilter fits into your existing workflow. You prepare the design in your ECAD, upload it, and Quilter handles placement and routing. You review the output, make adjustments, and resubmit. Most boards go through 2 to 5 cycles before the engineer is satisfied with the result. There&rsquo;s no magic: Quilter shows you every physics check it ran, and you stay in control at every step.</p>
1034  <p class="qf2-cta"><a href="/product">Explore How Quilter Works <span aria-hidden="true">&rarr;</span></a></p>
1035</div>
1036
1037</div></div></div></div></section><section id="how-quilter-works-new" class="section-default hide"><div class="padding-global padding-section-large"><div class="container-large"><div class="w-embed w-script"><!-- "How Quilter Works" — heading, supporting copy, ECAD → Quilter flow diagram.
1038     PASTE THIS WHOLE BLOCK INTO A WEBFLOW HTML EMBED. It is a fragment on
1039     purpose: no doctype, no html/head/body, no meta tags, no title, no font
1040     stylesheet reference.
1041     Those belong to the page, and adding them here nests a second document
1042     inside the page and breaks it.
1043
1044     Typography follows Figma node 3295:271 (card titles Inter Medium 500/14,
1045     icon + band labels Inter Regular 400/12 and 400/16, body Inter 400/18),
1046     scaled up by the SVG's 2000/1170 viewBox factor.
1047     Heading size is 50px desktop / 40px tablet-and-below per client, overriding
1048     Figma's 60px.
1049     Sits on the site's DARK section: heading is white, body copy uses
1050     --body-text. The diagram carries its own light surface so its dark text
1051     stays readable.
1052
1053     Eight stages, eight videos, one video per stage. This replaces a six-stage
1054     version in which Review Candidates and Edit & Clean Up each opened two
1055     videos behind tabs, because the iteration loop passes through them twice.
1056     That is now drawn rather than hidden: the placement pass (Review Placement
1057     → Tweak Placement) and the routing pass (Review Routing → Final Cleanup)
1058     are separate cards, so no card owns more than one video and the tab UI is
1059     gone. Composition is otherwise unchanged, and the viewBox is still
1060     0 0 2000 1018 — the six small cards were narrowed from 250 to 235 to make
1061     room rather than widening the canvas.
1062
1063     Two things that look like nits but are not:
1064     1. The iframe's allow list MUST contain `autoplay`, or the browser's
1065        permissions policy blocks it and the visitor has to press play a
1066        second time even though the URL carries autoplay=1.
1067     2. Closing sets the iframe to about:blank, NOT to '' — an empty src
1068        resolves against the base URL and makes the iframe reload this whole
1069        page inside itself (extra load + double-counted pageviews). -->
1070<style>
1071  .qf2{width:100%;display:flex;flex-direction:column;align-items:center;gap:48px;
1072       font-family:var(--inter,Inter),Inter,system-ui,sans-serif;color:#000}
1073  /* "How" is white; "Quilter Works" is brand blue via the span below. */
1074  .qf2-title{margin:0;text-align:center;color:#fff;
1075       font-family:var(--apk-protocol,"Aeonik Pro"),"Aeonik Pro",Arial,sans-serif;
1076       font-weight:300;font-size:50px;line-height:1;letter-spacing:-.03em}
1077  /* 991px is Webflow's tablet breakpoint — 50px desktop, 40px tablet and below */
1078  @media (max-width:991px){.qf2-title{font-size:40px}}
1079  /* inline, not block — heading reads on a single line */
1080  .qf2-title span{color:#007bff}
1081  .qf2-figure{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:12px 0}
1082  .qf2-figure svg{display:block;width:100%;height:auto}
1083  @media (max-width:900px){.qf2-figure svg{min-width:860px}}
1084  .qf2-copy{max-width:860px;display:flex;flex-direction:column;align-items:center;
1085       gap:25px;text-align:center}
1086  .qf2-copy p{margin:0;font-size:18px;font-weight:400;line-height:1.5;letter-spacing:-.02em;
1087       color:var(--body-text,#ddd)}
1088  /* needs p.qf2-cta, not .qf2-cta — ".qf2-copy p" above would otherwise win on
1089     specificity and hold the link at the 18px body size */
1090  .qf2-copy p.qf2-cta{font-size:16px;letter-spacing:normal;line-height:1}
1091  /* The CTA is a button, matching the site's outline button (.secondary_btn):
1092     1px #007bff, 10px radius, Space Grotesk 16/400, filling blue on hover.
1093     The arrow lives inside the <a> so the whole thing is one target. */
1094  .qf2-cta a{display:inline-flex;align-items:center;gap:10px;
1095       padding:16px 24px;border:1px solid #007bff;border-radius:10px;
1096       font-family:var(--space-grotesk,"Space Grotesk"),"Space Grotesk",Arial,sans-serif;
1097       font-size:16px;font-weight:400;line-height:1;color:#007bff;
1098       background:transparent;text-decoration:none;
1099       transition:background-color .2s ease,color .2s ease}
1100  .qf2-cta a:hover{background:#007bff;color:#000}
1101  .qf2-cta a span{transition:transform .2s ease}
1102  .qf2-cta a:hover span{transform:translateX(3px)}
1103
1104  /* Reading order: heading → explanation → diagram → link. .qf2-copy becomes
1105     display:contents so its two paragraphs are direct flex children of .qf2
1106     and can be ordered around the figure; the max-width, centring and gap that
1107     .qf2-copy used to supply move onto the paragraphs themselves. */
1108  .qf2-copy{display:contents}
1109  .qf2-copy>p{max-width:860px;text-align:center}
1110  .qf2-title{order:1}
1111  .qf2-copy>p{order:2}
1112  .qf2-figure{order:3}
1113  .qf2-copy>p.qf2-cta{order:4}
1114
1115  @media (max-width:700px){.qf2{gap:36px}}
1116
1117  /* Clickable stages. Resting affordance is a ghost play mark in each card's
1118     top-right corner; hover/focus rings the card in brand blue. */
1119  .qf2-hot{cursor:pointer;outline:none}
1120  .qf2-hot .qf2-plate{fill:none;stroke:#007bff;stroke-width:4;opacity:0;transition:opacity .18s ease}
1121  .qf2-hot:hover .qf2-plate,.qf2-hot:focus-visible .qf2-plate{opacity:1}
1122  .qf2-hot .qf2-hit{fill:transparent}
1123  .qf2-play{opacity:.45;transition:opacity .18s ease}
1124  .qf2-play .ring{fill:#fff;stroke:#007bff;stroke-width:3}
1125  .qf2-play .tri{fill:#007bff}
1126  .qf2-hot:hover .qf2-play,.qf2-hot:focus-visible .qf2-play{opacity:1}
1127  @media (prefers-reduced-motion:reduce){.qf2-hot .qf2-plate,.qf2-play{transition:none}}
1128
1129  /* Player, on the site's own tokens: #191919 surface, #3b3b3b borders,
1130     Aeonik Pro title, Space Grotesk eyebrow. */
1131  .qf2-modal{position:fixed;inset:0;z-index:9999;display:none;background:rgba(0,0,0,.92);
1132       padding:24px;align-items:center;justify-content:center;
1133       font-family:var(--inter,Inter),Inter,system-ui,sans-serif}
1134  .qf2-modal[open]{display:flex}
1135  .qf2-dialog{width:min(1000px,100%);max-height:100%;display:flex;flex-direction:column;
1136       background:#191919;border:1px solid #3b3b3b;border-radius:10px;overflow:auto}
1137  .qf2-dhead{display:flex;align-items:flex-start;gap:24px;padding:28px 28px 0}
1138  .qf2-eyebrow{margin:0 0 12px;font-size:12px;line-height:1;letter-spacing:.16em;
1139       text-transform:uppercase;color:#696969;
1140       font-family:var(--space-grotesk,"Space Grotesk"),"Space Grotesk",Arial,sans-serif}
1141  .qf2-dhead h3{margin:0;color:#fff;font-weight:300;font-size:26px;line-height:1.25;
1142       letter-spacing:-.02em;
1143       font-family:var(--apk-protocol,"Aeonik Pro"),"Aeonik Pro",Arial,sans-serif}
1144  .qf2-dhead .dur{margin:10px 0 0;font-size:16px;line-height:1.4;color:#696969}
1145  .qf2-x{margin-left:auto;flex:none;width:40px;height:40px;background:transparent;
1146       border:1px solid #3b3b3b;border-radius:5px;color:#fff;font-size:20px;line-height:1;
1147       cursor:pointer;transition:border-color .2s ease,color .2s ease}
1148  .qf2-x:hover,.qf2-x:focus-visible{border-color:#007bff;color:#007bff}
1149  .qf2-frame{position:relative;margin:24px 28px 28px;border-radius:10px;overflow:hidden;
1150       background:#000;aspect-ratio:16/9}
1151  .qf2-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
1152  @media (max-width:700px){
1153    .qf2-dhead{padding:20px 20px 0}
1154    .qf2-frame{margin:18px 20px 20px}.qf2-dhead h3{font-size:22px}
1155  }
1156</style>
1157
1158<div class="qf2">
1159
1160<h2 class="qf2-title">How <span>Quilter Works</span></h2>
1161
1162<div class="qf2-figure">
1163<svg viewBox="0 0 2000 1018" xmlns="http://www.w3.org/2000/svg"
1164     aria-label="Design flow across eight stages. In your ECAD you prepare design files. In Quilter you define design context and the Quilter Engine generates candidates. You review placement, tweak it in your ECAD, then review routing, do a final cleanup and a design review. Each stage opens a short video.">
1165<defs>
1166  <marker id="qf2a" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
1167    <path d="M0,0 L10,5 L0,10 z" fill="#000"/>
1168  </marker>
1169  <style>
1170    .qf2-t{font-family:Inter,system-ui,sans-serif;fill:#000;letter-spacing:-.02em}
1171    .qf2-h{font-size:24px;font-weight:500}
1172    .qf2-l{font-size:20.5px;font-weight:400}
1173    .qf2-band{font-size:27.4px;font-weight:400}
1174    .qf2-w{stroke:#000;stroke-width:2;fill:none;marker-end:url(#qf2a)}
1175    .qf2-d{stroke-dasharray:9 8}
1176  </style>
1177</defs>
1178
1179<!-- One continuous grey surface behind the whole diagram, with the blue Quilter
1180     zone flush on top of it, so no black page shows through between the bands. -->
1181<rect fill="#f5f5f5" x="0" y="0" width="2000" height="1018" rx="21"/>
1182<rect fill="#e6f2ff" x="0" y="428" width="2000" height="590" rx="21"/>
1183<text class="qf2-t qf2-band" x="52" y="78">ECAD</text>
1184<text class="qf2-t qf2-band" x="52" y="965" fill="#0021e7">Quilter</text>
1185
1186<path class="qf2-w" d="M426,348 V588 Q426,608 446,608 H512"/>
1187<path class="qf2-w qf2-d" d="M1060,208 H775 Q755,208 755,228 V478"/>
1188<path class="qf2-w" d="M752,718 V842 Q752,862 772,862 H918"/>
1189<path class="qf2-w" d="M1252,862 H1327 Q1347,862 1347,842 V700"/>
1190<path class="qf2-w" d="M1347,490 V420 Q1347,400 1327,400 H1197 Q1177,400 1177,380 V315"/>
1191<path class="qf2-w qf2-d" d="M1252,930 H1622 Q1642,930 1642,910 V700"/>
1192<path class="qf2-w" d="M1642,490 V420 Q1642,400 1622,400 H1492 Q1472,400 1472,380 V315"/>
1193<path class="qf2-w" d="M1590,208 H1650"/>
1194
1195<rect fill="#fff" x="197" y="98" width="458" height="250" rx="21"/>
1196<text class="qf2-t qf2-h" x="426" y="158" text-anchor="middle">Prepare Your Design Files</text>
1197<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccc00d599640ee50079a_qf2-schematic.svg" x="266" y="200" width="46" height="46"/>
1198<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbe556592892616661f_qf2-board-outline.svg" x="402" y="200" width="46" height="46"/>
1199<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbf55659289261666ee_qf2-fixed-components.svg" x="539" y="200" width="46" height="46"/>
1200<text class="qf2-t qf2-l" x="289" y="283" text-anchor="middle">Schematic</text>
1201<text class="qf2-t qf2-l" x="425" y="283" text-anchor="middle">Board Outline</text>
1202<text class="qf2-t qf2-l" x="562" y="283" text-anchor="middle">Fixed</text>
1203<text class="qf2-t qf2-l" x="562" y="306" text-anchor="middle">Components</text>
1204
1205<rect fill="#fff" x="1060" y="112" width="235" height="193" rx="21"/>
1206<text class="qf2-t qf2-h" x="1177" y="170" text-anchor="middle">Tweak Placement</text>
1207<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbf070a816433c0ae48_qf2-edit-cleanup.svg" x="1154" y="208" width="46" height="46"/>
1208
1209<rect fill="#fff" x="1355" y="112" width="235" height="193" rx="21"/>
1210<text class="qf2-t qf2-h" x="1472" y="170" text-anchor="middle">Final Cleanup</text>
1211<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbf070a816433c0ae48_qf2-edit-cleanup.svg" x="1449" y="208" width="46" height="46"/>
1212
1213<rect fill="#fff" x="1650" y="112" width="235" height="193" rx="21"/>
1214<text class="qf2-t qf2-h" x="1767" y="170" text-anchor="middle">Design Review</text>
1215<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbf6685a7aeb267f100_qf2-design-review.svg" x="1744" y="208" width="46" height="46"/>
1216
1217<rect fill="#fff" x="820" y="183" width="188" height="50" rx="10"/>
1218<text class="qf2-t qf2-l" x="914" y="214" text-anchor="middle">Iteration Loop</text>
1219
1220<rect fill="#fff" x="524" y="490" width="456" height="228" rx="21"/>
1221<text class="qf2-t qf2-h" x="752" y="548" text-anchor="middle">Define Design Context</text>
1222<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbf03751affa3785a0e_qf2-stackup.svg" x="592" y="585" width="46" height="46"/>
1223<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbf55659289261666a0_qf2-constraints.svg" x="728" y="585" width="46" height="46"/>
1224<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbe5565928926166669_qf2-circuit-intent.svg" x="866" y="585" width="46" height="46"/>
1225<text class="qf2-t qf2-l" x="615" y="670" text-anchor="middle">Stackup</text>
1226<text class="qf2-t qf2-l" x="751" y="670" text-anchor="middle">Constraints</text>
1227<text class="qf2-t qf2-l" x="889" y="670" text-anchor="middle">Circuit Intent</text>
1228
1229<rect fill="#fff" x="1230" y="490" width="235" height="200" rx="21"/>
1230<text class="qf2-t qf2-h" x="1347" y="548" text-anchor="middle">Review Placement</text>
1231<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccc0556592892616673e_qf2-placement.svg" x="1324" y="586" width="46" height="46"/>
1232
1233<rect fill="#fff" x="1525" y="490" width="235" height="200" rx="21"/>
1234<text class="qf2-t qf2-h" x="1642" y="548" text-anchor="middle">Review Routing</text>
1235<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccc0556592892616675d_qf2-routing.svg" x="1619" y="586" width="46" height="46"/>
1236
1237<rect fill="#fff" x="930" y="763" width="322" height="199" rx="21"/>
1238<text class="qf2-t qf2-h" x="1091" y="821" text-anchor="middle">Quilter Engine</text>
1239<image href="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a6dccbf556592892616670d_qf2-quilter-engine.svg" x="1068" y="858" width="46" height="50"/>
1240
1241<g id="qf2hots"></g>
1242</svg>
1243</div>
1244
1245<div class="qf2-copy">
1246  <p>Quilter fits into your existing workflow. You prepare the design in your ECAD, upload it, and Quilter handles placement and routing. You review the output, make adjustments, and resubmit. Most boards go through 2 to 5 cycles before the engineer is satisfied with the result. There&rsquo;s no magic: Quilter shows you every physics check it ran, and you stay in control at every step.</p>
1247  <p class="qf2-cta"><a href="/product">Explore How Quilter Works <span aria-hidden="true">&rarr;</span></a></p>
1248</div>
1249
1250</div>
1251
1252<div class="qf2-modal" id="qf2modal" role="dialog" aria-modal="true" aria-labelledby="qf2dt">
1253  <div class="qf2-dialog">
1254    <div class="qf2-dhead">
1255      <div>
1256        <p class="qf2-eyebrow" id="qf2eb"></p>
1257        <h3 id="qf2dt"></h3>
1258        <p class="dur" id="qf2ds"></p>
1259      </div>
1260      <button class="qf2-x" id="qf2x" aria-label="Close video">&times;</button>
1261    </div>
1262    <div class="qf2-frame"><iframe id="qf2if" title="Quilter workflow video" src="about:blank" data-video-base="https://www.youtube.com/embed/" allowfullscreen
1263      allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
1264      referrerpolicy="strict-origin-when-cross-origin"></iframe></div>
1265  </div>
1266</div>
1267
1268<script>
1269(function(){
1270  var NS='http://www.w3.org/2000/svg';
1271
1272  /* One stage, one video. Order is the order of the workflow, n is the number
1273     shown as "Workflow n of 8" in the player, and x/y/w/h must match the rects
1274     above — the hit areas and play marks are drawn from them. */
1275  var STEPS=[
1276    {n:1,x:197, y:98, w:458,h:250,name:'Prepare Your Design Files',
1277     t:'Prepare Your ECAD Files',d:'4:34',id:'Z3RnMB9JqmY'},
1278    {n:2,x:524, y:490,w:456,h:228,name:'Define Design Context',
1279     t:'Files Upload, Stackup, Constraints, and Floorplan',d:'3:14',id:'vvPyMT4DIH4'},
1280    {n:3,x:930, y:763,w:322,h:199,name:'Quilter Engine',
1281     t:'Circuit Comprehension',d:'8:47',id:'SsEhqmbRMME'},
1282    {n:4,x:1230,y:490,w:235,h:200,name:'Review Placement',
1283     t:'Placement Candidates Selection',d:'1:10',id:'NwjWG0wHGc0'},
1284    {n:5,x:1060,y:112,w:235,h:193,name:'Tweak Placement',
1285     t:'Review and Tweak Placement in Your ECAD',d:'3:06',id:'kG7e3vVSiv8'},
1286    {n:6,x:1525,y:490,w:235,h:200,name:'Review Routing',
1287     t:'Routed Candidates Review and Selection',d:'2:43',id:'vvL24AqMpNg'},
1288    {n:7,x:1355,y:112,w:235,h:193,name:'Final Cleanup',
1289     t:'Final Review and Cleanup in Your ECAD',d:'1:28',id:'Fy5xfjMwrSo'},
1290    {n:8,x:1650,y:112,w:235,h:193,name:'Design Review',
1291     t:'Final Design Rules Check (DRC)',d:'',id:'Wbn2vH-IPEk'}
1292  ];
1293
1294  function el(n,a){var e=document.createElementNS(NS,n);for(var k in a)e.setAttribute(k,a[k]);return e;}
1295  var host=document.getElementById('qf2hots');
1296  if(!host)return;
1297
1298  STEPS.forEach(function(s){
1299    var g=el('g',{'class':'qf2-hot',tabindex:'0',role:'button'});
1300    g.setAttribute('aria-label','Watch '+s.name+(s.d?' - '+s.d:''));
1301    g.appendChild(el('rect',{'class':'qf2-plate',x:s.x-6,y:s.y-6,width:s.w+12,height:s.h+12,rx:27}));
1302    var p=el('g',{'class':'qf2-play'}),cx=s.x+s.w-6,cy=s.y+6;
1303    p.appendChild(el('circle',{'class':'ring',cx:cx,cy:cy,r:26}));
1304    p.appendChild(el('path',{'class':'tri',d:'M'+(cx-8)+','+(cy-12)+' L'+(cx+14)+','+cy+' L'+(cx-8)+','+(cy+12)+' Z'}));
1305    g.appendChild(p);
1306    g.appendChild(el('rect',{'class':'qf2-hit',x:s.x,y:s.y,width:s.w,height:s.h,rx:21}));
1307    g.addEventListener('click',function(){show(s);});
1308    g.addEventListener('keydown',function(e){
1309      if(e.key==='Enter'||e.key===' '){e.preventDefault();show(s);}});
1310    host.appendChild(g);
1311  });
1312
1313  var modal=document.getElementById('qf2modal'),frame=document.getElementById('qf2if'),
1314      eb=document.getElementById('qf2eb'),dt=document.getElementById('qf2dt'),
1315      ds=document.getElementById('qf2ds'),xBtn=document.getElementById('qf2x'),last=null;
1316  // Keep player configuration in markup so URL-based consent matching does not block these controls.
1317  // Video navigation remains inert and explicitly marketing-gated in replaceFrame().
1318  var videoBase=frame.getAttribute('data-video-base'),frameTemplate=frame.cloneNode(false);
1319  function replaceFrame(videoUrl){
1320    // A fresh inert iframe lets Consent Pro gate insertion before any video request.
1321    // Read the live node because Consent Pro may replace it with its placeholder.
1322    var current=document.getElementById('qf2if'),next=frameTemplate.cloneNode(false);
1323    next.removeAttribute('src');
1324    if(videoUrl){
1325      next.setAttribute('fs-consent-src',videoUrl);
1326      next.setAttribute('fs-consent-categories','marketing');
1327    }else{
1328      next.setAttribute('src','about:blank');
1329    }
1330    if(current&&current.parentNode)current.parentNode.replaceChild(next,current);
1331  }
1332
1333  function show(s){
1334    last=document.activeElement;
1335    replaceFrame(videoBase+s.id+'?rel=0&autoplay=1&playsinline=1');
1336    eb.textContent='Workflow '+s.n+' of 8';
1337    dt.textContent=s.t;
1338    ds.textContent=s.d||'';
1339    modal.setAttribute('open','');xBtn.focus();
1340    document.documentElement.style.overflow='hidden';
1341    if(window.lenis&&window.lenis.stop){try{window.lenis.stop();}catch(e){}}
1342  }
1343  function hide(){
1344    modal.removeAttribute('open');replaceFrame(null);
1345    document.documentElement.style.overflow='';
1346    if(window.lenis&&window.lenis.start){try{window.lenis.start();}catch(e){}}
1347    if(last&&last.focus)last.focus();
1348  }
1349  xBtn.addEventListener('click',hide);
1350  modal.addEventListener('click',function(e){if(e.target===modal)hide();});
1351  document.addEventListener('keydown',function(e){
1352    if(e.key==='Escape'&&modal.hasAttribute('open'))hide();});
1353})();
1354</script>
1354
1355</div></div></div></section><section id="testimonials" class="section-default"><div class="padding-global padding-section-large"><div class="container-large"><div class="tony-quote-wrapper"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a4506bb1343c40bd1836bd0_tony-fadell.webp" loading="eager" sizes="(max-width: 1200px) 100vw, 1200px" srcset="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a4506bb1343c40bd1836bd0_tony-fadell-p-500.webp 500w, https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a4506bb1343c40bd1836bd0_tony-fadell-p-800.webp 800w, https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a4506bb1343c40bd1836bd0_tony-fadell-p-1080.webp 1080w, https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a4506bb1343c40bd1836bd0_tony-fadell.webp 1200w" alt="Tony Fadell, Build Collective Principal and iPod creator" class="tony-fadell"/><div class="tony-quote-text-wrapper"><div><p class="text-36">Quilter gives top PCB designers the superpower to <span class="green-text">turn weeks into days.</span> It’s a complete paradigm shift. When you iterate faster, you can out-innovate your competitors.</p></div><div class="tony-quote-description"><p class="text-22">Tony Fadell</p><p class="text-16">Build Collective Principal, “Father of the iPod”, iPhone Co-Inventor, and Nest Founder</p></div></div><div class="tony-quote-left"><p class="text-20"><span class="text-green">“</span>Anyone who&#x27;s done circuit design long enough will be skeptical at first and assume this is just a fancy auto-router, because nobody who tried auto-routing ever liked it. But the way you approach placement overcomes a lot of those barriers, and makes this a genuinely useful tool that saves time.<span class="text-green">”</span></p><div class="tony-fadell-subquote-title-wrapper"><p class="text-22">Principal Engineer, <span class="text-color-696969">Defense and Aerospace</span></p></div></div><div class="tony-quote-right"><p class="text-20"><span class="text-green">“</span>The biggest value is efficiency. Producing a quick derivative of a core design takes a lot of effort. Quilter can let us serve customers much faster and reach far more of them than we could before.<span class="text-green">”</span></p><p class="text-22">Division Manager, <span class="text-color-696969">Semiconductors Industry</span></p></div></div></div></div></section><section id="not-an-auto-router" class="section-default hide"><div class="padding-global padding-section-large"><div class="container-large"><h2 class="solutions_heading section_heading is-centered">We Didn&#x27;t Build Another Auto-Router</h2><p class="aur-lede">The idea behind auto-routers was right. The technology wasn&#x27;t ready. Reinforcement learning trained on fundamental physics changes the equation. Quilter doesn&#x27;t just connect nets. It compiles boards that respect your circuit&#x27;s electrical behavior.</p><div class="aur-strip"><div class="aur-cell"><p class="aur-era">1960s</p><div class="aur-art"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -20 220 180" role="img" aria-label="A hand cutting taped artwork on mylar film with a scalpel"><rect x="8" y="8" width="204" height="124" rx="2" fill="none" stroke="currentColor" stroke-width="0.56" opacity=".3" stroke-dasharray="4 5"></rect><g opacity=".5" fill="none" stroke="currentColor" stroke-width="0.68"><circle cx="24" cy="24" r="5"></circle><path d="M24 17v14M17 24h14"></path><circle cx="24" cy="116" r="5"></circle><path d="M24 109v14M17 116h14"></path><circle cx="196" cy="116" r="5"></circle><path d="M196 109v14M189 116h14"></path></g><g fill="none" stroke="currentColor" stroke-width="3.95" opacity=".9"><path d="M32 34h34l12-12h26"></path><path d="M32 64h70"></path><path d="M116 64h36l12 12h32"></path><path d="M32 96h40l12 12h60"></path></g><g fill="none" stroke="currentColor" stroke-width="1.13"><circle cx="32" cy="34" r="5.5"></circle><circle cx="32" cy="64" r="5.5"></circle><circle cx="32" cy="96" r="5.5"></circle><circle cx="104" cy="22" r="5.5"></circle><circle cx="196" cy="76" r="5.5"></circle><circle cx="144" cy="108" r="5.5"></circle></g><g fill="currentColor"><circle cx="32" cy="34" r="1.9"></circle><circle cx="32" cy="64" r="1.9"></circle>
1355<circle cx="32" cy="96" r="1.9"></circle><circle cx="104" cy="22" r="1.9"></circle><circle cx="196" cy="76" r="1.9"></circle><circle cx="144" cy="108" r="1.9"></circle></g><path d="M104 68l-16 16" fill="none" stroke="currentColor" stroke-width="0.68" stroke-dasharray="2 4" opacity=".5"></path><g fill="none" stroke="currentColor" stroke-width="0.9" opacity=".8"><path d="M112 80l14-4 3 8-14 4z"></path><path d="M94 88l10-3 2 6-10 3z"></path><path d="M130 94l9 2-3 7-8-3z"></path></g><g fill="none" stroke="currentColor" stroke-width="1.13"><path d="M108 64l24-24 8 8z"></path><path d="M140.2 48.2L196.8 -8.4 188.4 -16.8 131.8 39.8z"></path><path d="M131.8 39.8l8.4 8.4"></path></g><g fill="none" stroke="currentColor" stroke-width="0.62" opacity=".7"><path d="M151.5 36.9l-8.4-8.4"></path><path d="M155.8 32.6l-8.4-8.4"></path><path d="M160.0 28.4l-8.4-8.4"></path><path d="M164.2 24.2l-8.4-8.4"></path><path d="M168.5 19.9l-8.4-8.4"></path><path d="M172.7 15.7l-8.4-8.4"></path></g></svg></div><p class="aur-name">Mylar and tape</p><p class="aur-sub">Cut by hand</p></div><div class="aur-cell"><p class="aur-era">1980s</p><div class="aur-art"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -20 220 180" role="img" aria-label="A hand drawing a board layout on a CAD terminal with a light pen"><rect x="10" y="8" width="140" height="94" rx="4" fill="none" stroke="currentColor" stroke-width="1.35"></rect><rect x="17" y="15" width="126" height="78" fill="none" stroke="currentColor" stroke-width="0.56" opacity=".45"></rect><path d="M66 102v12h28v-12M54 114h52" fill="none" stroke="currentColor" stroke-width="1.35" stroke-linecap="round"></path><g opacity=".18" stroke="currentColor" stroke-width="0.45"><path d="M17 27h126M17 39h126M17 51h126M17 63h126M17 75h126"></path><path d="M29 15v78M41 15v78M53 15v78M65 15v78M77 15v78M89 15v78M101 15v78M113 15v78M125 15v78"></path></g><g fill="none" stroke="currentColor" stroke-width="1.02"><rect x="28" y="28" width="24" height="14"></rect><rect x="86" y="60" width="24" height="14"></rect></g><g fill="currentColor" opacity=".85"><rect x="24" y="31" width="4" height="3"></rect><rect x="24" y="37" width="4" height="3"></rect><rect x="52" y="31" width="4" height="3"></rect><rect x="52" y="37" width="4" height="3"></rect><rect x="82" y="63" width="4" height="3"></rect><rect x="82" y="69" width="4" height="3"></rect><rect x="110" y="63" width="4" height="3"></rect><rect x="110" y="69" width="4" height="3"></rect></g><g opacity=".55" stroke="currentColor" stroke-width="0.56" stroke-dasharray="3 4" fill="none"><path d="M56 32.5L82 64.5"></path><path d="M56 38.5L82 70.5"></path></g><g fill="none" stroke="currentColor" stroke-width="1.24"><path d="M28 35H21v36h26"></path></g><path d="M84 50l10.6 5.6-1.2 2.3z" fill="none" stroke="currentColor" stroke-width="1.13"></path><path d="M93.0 58.6L121.4 73.4M96.2 52.6L124.6 67.4" fill="none" stroke="currentColor" stroke-width="1.13"></path><path d="M168.3 97.9L179.9 103.9M171.5 91.9L183.1 97.9M179.9 103.9L183.1 97.9" fill="none" stroke="currentColor" stroke-width="1.13"></path><path d="M181.5 100.9c7 6 8 14 4 21" fill="none" stroke="currentColor" stroke-width="0.79" opacity=".7"></path><path d="M126.75 64.82L144.79 69.17C156.41 72.2 164.31 80.39 164.17 88.44C164.78 98.92 162.59 108.95 158.42 116.92L140.58 123.85C135.94 113.29 132.9 103.58 131.45 94.7C130.38 87.03 130.9 80.19 132.57 77L125.43 71.24Z" fill="none" stroke="currentColor" stroke-width="1.13" stroke-linejoin="round" stroke-linecap="round"></path><path d="M132.95 78.22C127.3 79.32 123.2 83.28 123.13 87.3C123.05 91.32 126.24 92.99 129.89 91.85" fill="none" stroke="currentColor" stroke-width="1.13" stroke-linejoin="round" stroke-linecap="round"></path><path d="M131.45 94.7C137.9 94.01 143.52 94.91 147.51 97" fill="none" stroke="currentColor" stroke-width="0.87" stroke-linejoin="round" stroke-linecap="round" opacity=".75"></path><path d="M133.28 104.79C139.73 104.1 145.35 105.01 150.13 107.51" fill="none" stroke="currentColor" stroke-width="0.87" stroke-linejoin="round" stroke-linecap="round" opacity=".75"></path><path d="M158.42 116.92L169.91 149.33" fill="none" stroke="currentColor" stroke-width="1.13" stroke-linejoin="round" stroke-linecap="round"></path><path d="M140.58 123.85L152.07 156.26" fill="none" stroke="currentColor" stroke-width="1.13" stroke-linejoin="round" stroke-linecap="round"></path><path d="M161.41 125.39L143.57 132.31" fill="none" stroke="currentColor" stroke-width="0.9" stroke-linejoin="round" stroke-linecap="round" opacity=".85"></path><path d="M163.21 130.49L145.37 137.42" fill="none" stroke="currentColor" stroke-width="0.9" stroke-linejoin="round" stroke-linecap="round" opacity=".85"></path></svg></div><p class="aur-name">CAD layout</p><p class="aur-sub">Drafting digitized</p></div><div class="aur-cell"><p class="aur-era">2000s</p><div class="aur-art"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -20 220 180" role="img" aria-label="An auto-routed board: the same four parts tangled with crossings and nine vias"><rect x="10" y="10" width="200" height="120" rx="3" fill="none" stroke="currentColor" stroke-width="0.68" opacity=".5"></rect><g fill="none" stroke="currentColor" stroke-width="1.02"><rect x="28" y="34" width="36" height="22"></rect><rect x="146" y="26" width="32" height="18"></rect><rect x="36" y="90" width="32" height="18"></rect><rect x="140" y="86" width="40" height="26"></rect></g><g fill="currentColor" opacity=".8"><rect x="24" y="39" width="4" height="3"></rect><rect x="24" y="49" width="4" height="3"></rect><rect x="64" y="39" width="4" height="3"></rect><rect x="64" y="49" width="4" height="3"></rect><rect x="142" y="31" width="4" height="3"></rect><rect x="142" y="39" width="4" height="3"></rect><rect x="32" y="95" width="4" height="3"></rect><rect x="68" y="95" width="4" height="3"></rect><rect x="136" y="91" width="4" height="3"></rect><rect x="136" y="103" width="4" height="3"></rect></g><g fill="none" stroke="currentColor" stroke-width="1.24" opacity=".95"><path d="M64 41h20v40h30V51h40v-20h-8"></path><path d="M64 50h8v58h40V72h26v20h2"></path><path d="M68 96h20V66h34v52h30v-14h-12"></path><path d="M68 103h30V61H58V24h108v15h-20"></path></g><g fill="none" stroke="currentColor" stroke-width="0.85"><circle cx="84" cy="81" r="3.4"></circle><circle cx="114" cy="51" r="3.4"></circle><circle cx="72" cy="108" r="3.4"></circle><circle cx="112" cy="72" r="3.4"></circle><circle cx="88" cy="66" r="3.4"></circle><circle cx="122" cy="118" r="3.4"></circle><circle cx="98" cy="61" r="3.4"></circle><circle cx="58" cy="24" r="3.4"></circle><circle cx="166" cy="24" r="3.4"></circle></g></svg></div><p class="aur-name">Auto-routers</p><p class="aur-sub">Geometry only</p></div><div class="aur-cell aur-cell-now"><p class="aur-era aur-era-now">NOW</p><div class="aur-art-now"><svg aria-label="A Quilter-compiled board: system on module, connectors, mounting holes and routed nets" role="img" viewBox="0 0 220 180" xmlns="http://www.w3.org/2000/svg"><path stroke-dasharray="none" stroke-width="1.16" stroke-opacity=".7" stroke="currentColor" fill="none" d="M129.75 2.51V18.98H195.75M18.42 2.76V26.84M121.37 10.13H18.42M121.37 16.03H18.42M121.37 20.94H18.42M50.93 2.76V26.84M87.87 2.76V26.84M121.37 2.76V26.84M201.17 70.59H191.01C190.37 70.59 189.84 71.11 189.84 71.75V73.35C189.84 74 190.37 74.52 191.01 74.52H201.17M198.21 104.5L193.53 104.93C193.11 104.96 192.79 105.31 192.79 105.73C192.79 106.15 193.11 106.5 193.53 106.53L198.21 106.96M198.21 111.38L193.53 111.81C193.11 111.85 192.79 112.19 192.79 112.61C192.79 113.03 193.11 113.38 193.53 113.42L198.21 113.84M198.21 133.01L193.53 133.43C193.11 133.47 192.79 133.82 192.79 134.24C192.79 134.66 193.11 135 193.53 135.04L198.21 135.47M198.21 139.89L193.53 140.32C193.11 140.35 192.79 140.7 192.79 141.12C192.79 141.54 193.11 141.89 193.53 141.92L198.21 142.35M201.17 85.82H191.01C190.37 85.82 189.84 86.35 189.84 86.99V88.59C189.84 89.23 190.37 89.76 191.01 89.76H201.17M189.35 56.58V60.27H193.29V56.58M193.5 46.75V43.06L189.56 43.06V46.75M180.97 46.75V43.06L177.03 43.06V46.75M174.32 50.93H170.63V54.86H174.32M195.75 151.42H187.62V166.16H195.75M114.48 163.48V173.53C114.48 174.5 113.69 175.28 112.72 175.28H108.84C107.87 175.28 107.09 174.5 107.09 173.53V163.48M195.93 46.79V2.49H15.69V173.43C15.69 175.69 17.52 177.52 19.78 177.52H191.84C194.1 177.52 195.93 175.69 195.93 173.43V165.02M195.93 56.66V66.53M195.93 93.95V101.85M195.93 116.54V130.36M195.93 145.06V152.51M195.93 33.85V33.11C195.93 30.85 194.1 29.03 191.84 29.03H19.64C17.46 29.03 15.69 30.79 15.69 32.97M45.51 46.99V163.48H140.42V46.99H45.51ZM79.01 111.87H103.15V135.96H79.01V111.87ZM78.52 142.37H102.38C103.34 142.37 104.13 143.15 104.13 144.12V159.48C104.13 159.8 103.87 160.06 103.55 160.06H78.52V142.37ZM73.1 76.98H95.76V97.13H73.1V76.98ZM72.6 49.94H96.25V73.54H72.6V49.94ZM105.39 78.94C104.43 78.94 103.64 78.16 103.64 77.19V52.68C103.64 51.71 104.43 50.93 105.39 50.93H128.98C129.95 50.93 130.73 51.71 130.73 52.68V77.19C130.73 78.16 129.95 78.94 128.98 78.94H105.39ZM165.21 66.16H202.16V94.18H165.21V90.25H165.7V82.38H165.21V77.96H165.7V70.1H165.21V66.16ZM189.35 152.4H197.72V165.18H189.35V164.2H188.86V162.23H189.35V155.35H188.86V153.38H189.35V152.4ZM195.45 34.38C195.45 37.09 193.25 39.3 190.53 39.3C187.81 39.3 185.6 37.09 185.6 34.38C185.6 31.67 187.81 29.46 190.53 29.46C193.25 29.46 195.45 31.67 195.45 34.38ZM140.09 83.37C140.09 86.08 137.88 88.28 135.16 88.28C132.44 88.28 130.24 86.08 130.24 83.37C130.24 80.65 132.44 78.45 135.16 78.45C137.88 78.45 140.09 80.65 140.09 83.37ZM64.72 83.37C64.72 86.08 62.52 88.28 59.8 88.28C57.08 88.28 54.87 86.08 54.87 83.37C54.87 80.65 57.08 78.45 59.8 78.45C62.52 78.45 64.72 80.65 64.72 83.37ZM64.72 157.65C64.72 160.36 62.52 162.56 59.8 162.56C
135557.08 162.56 54.87 160.36 54.87 157.65C54.87 154.93 57.08 152.73 59.8 152.73C62.52 152.73 64.72 154.93 64.72 157.65ZM42.07 34.38C42.07 37.09 39.86 39.3 37.14 39.3C34.42 39.3 32.21 37.09 32.21 34.38C32.21 31.67 34.42 29.47 37.14 29.47C39.86 29.47 42.07 31.67 42.07 34.38ZM42.07 172.13C42.07 174.84 39.86 177.04 37.14 177.04C34.42 177.04 32.21 174.84 32.21 172.13C32.21 169.41 34.42 167.21 37.14 167.21C39.86 167.21 42.07 169.41 42.07 172.13ZM195.46 172.13C195.46 174.84 193.25 177.04 190.53 177.04C187.81 177.04 185.6 174.84 185.6 172.13C185.6 169.41 187.81 167.21 190.53 167.21C193.25 167.21 195.46 169.41 195.46 172.13ZM185.59 101.55H199.69V116.79H185.59C184.95 116.79 184.42 116.27 184.42 115.62V114.82H183.19V111.87H184.42V106.47H183.19V103.52H184.42V102.72C184.42 102.08 184.95 101.55 185.59 101.55ZM185.59 130.06H199.69V145.3H185.59C184.95 145.3 184.42 144.78 184.42 144.13V143.33H183.19V140.38H184.42V134.98H183.19V132.03H184.42V131.23C184.42 130.58 184.95 130.06 185.59 130.06ZM174.08 46.5H199.2V56.82H174.08V46.5ZM199.2 47.49H203.63V55.84H199.2V47.49ZM56.1 55.6H63.74V58.91C63.74 60.2 62.69 61.25 61.4 61.25H58.44C57.15 61.25 56.1 60.2 56.1 58.91V55.6ZM115.95 140.87H127.77V152.67H117.43L115.95 151.2V140.87ZM156.84 147.26H168.66V157.58L167.18 159.06H156.84V147.26ZM29.26 70.59H37.14V85.82H29.26V70.59ZM17.44 131.04H41.57V166.43H17.44V131.04ZM17.44 94.18H41.57V129.57H17.44V94.18Z"></path></svg></div><p class="aur-name aur-name-now">Physics-driven AI</p><p class="aur-sub">Full board compilation</p></div></div><div class="aur-close"><p class="aur-lede">Routing has a clear objective: connect every net, follow every rule. Placement doesn&#x27;t. The right placement is the one that can be routed, and you only know by trying.</p><p class="aur-lede aur-lede-gap">Quilter solves both as one problem, against the same physics.</p><a href="/product/technology" class="aur-link">Learn more on how Quilter is different from autorouters.</a></div></div></div></section><section id="security-and-ip" class="section-default"><div class="padding-global padding-section-large"><div class="container-large"><div class="solutions_header"><h2 class="solutions_heading section_heading is-centered"><span class="green-text">Built for</span> Regulated Industries and
Modern IP Protection Requirements</h2></div><div class="ip-protection-wrapper"><div class="ip-protection-list"><div class="ip-protection-list-item"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a29a7bdc300e19840461544_brain_icon.svg" loading="lazy" alt=""/><div class="ip-protection-list-item-content"><p class="text-22">No Training on Your Data</p><p class="text-16">Most AI tools are only as good as the data you feed them, which is why so many stall before they deliver value. Quilter learned layout by playing millions of synthetic boards against the laws of physics, the way AlphaGo learned Go. We don’t train on your data, and you get value on the first board, not after a large data cleanup project.</p></div></div><div class="ip-protection-list-item is-middle"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a29a7bd20150389f50d316d_check_icon.svg" loading="lazy" alt=""/><div class="ip-protection-list-item-content"><p class="text-22">Compliant with Cybersecurity Best Practices</p><p class="text-16">Data is encrypted at rest and in transit using security best practices (TLS1.3, AES-256), independently audited and compliant with industry standards. <a href="https://www.quilter.ai/blog/what-soc-2-type-ii-means-for-your-design-data-on-quilter" class="text-link-inline no-underline">What SOC 2 Type II Means for Your Design Data↗</a></p></div></div><div class="ip-protection-list-item is-bottom"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a29a7d4de58e0d4b5647df0_server2_icon2.svg" loading="lazy" alt=""/><div class="ip-protection-list-item-content"><p class="text-22">Self-Hosted Deployment Available</p><p class="text-16">We offer an option to deploy Quilter inside your own infrastructure. You control access, networking, and data residency while we manage the application.</p></div></div></div><div class="ip-protection-wrapper-right"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a29a74927693a34be661da5_ip-protection.webp" loading="lazy" sizes="100vw" srcset="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a29a74927693a34be661da5_ip-protection-
1355p-500.webp 500w, https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a29a74927693a34be661da5_ip-protection-p-800.webp 800w, https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a29a74927693a34be661da5_ip-protection-p-1080.webp 1080w, https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/6a29a74927693a34be661da5_ip-protection.webp 1160w" alt="Diagram of Quilter IP protection and data isolation" class="ip-protection-image"/></div></div></div></div></section><section id="capabilities" class="section-default"><div class="padding-global padding-section-large"><div class="container-large"><div class="banner-cms w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><a data-placement="home-section" data-banner="1" href="/project-speedrun" class="banner-link w-inline-block"><img src="https://cdn.prod.website-files.com/68bb346f5bba4f35114aabb4/6aa92b626cced44622207f46_6a54f2e311e2a460748d7950_Full-page.webp" loading="lazy" alt="Project Speedrun: the first computer designed by AI" class="banner-full-image"/><img src="https://cdn.prod.website-files.com/68bb346f5bba4f35114aabb4/6aa92b626cced44622207f3d_6a54f2e911e2a460748d8585_full-page-tablet.webp" loading="lazy" alt="Project Speedrun: the first computer designed by AI" class="banner-full-image-tablet"/><img src="https://cdn.prod.website-files.com/68bb346f5bba4f35114aabb4/6aa92b626cced44622207f43_6a54f2f6d4acfbc6c6fc8898_blog-mobile.webp" loading="lazy" alt="Project Speedrun: the first computer designed by AI" class="banner-full-image-mobile"/></a></div></div></div></div></div></section><section id="what-we-do-well" class="section-table"><div class="padding-global padding-section-medium"><div class="container-large"><div class="table-header"><h2 class="solutions_heading section_heading is-centered margin-16">What We Do <span class="green-text">Well</span></h2><p class="text-18 text-align-center">Quilter has a goldilocks zone today, and it&#x27;s expanding with every product update. Many teams adopt Quilter by running it end to end on the boards it handles well, and on the routine sections of more complex ones while they pre-route the critical parts themselves. Start today to build fluency on a tool that is evolving fast.</p></div><div class="tablet-wrapper"><div class="w-embed"><style>
1356  .qtbl-wrap {
1357    --qtbl-bg: #000;
1358    --qtbl-border: #191919;
1359    --qtbl-header-bg: rgba(0, 123, 255, 0.05);
1360    --qtbl-header-text: #696969;
1361    --qtbl-label: #ffffff;
1362    --qtbl-value: #dddddd;
1363    --qtbl-muted: #3b3b3b;
1364    --qtbl-live: #34c78a;
1365    --qtbl-beta: #e8a43a;
1366    --qtbl-dev: #3b3b3b;
1367    background: var(--qtbl-bg);
1368    color: var(--qtbl-value);
1369    font-family: 'Inter', Arial, sans-serif;
1370    -webkit-font-smoothing: antialiased;
1371    width: 100%;
1372    max-width: 75rem; /* 1200px */
1373    margin: 0 auto;
1374  }
1375  .qtbl-frame {
1376    border: 1px solid var(--qtbl-border);
1377    border-radius: 0.625rem; /* 10px */
1378    overflow: hidden;
1379  }
1380  .qtbl-scroll {
1381    width: 100%;
1382    overflow-x: auto;
1383    overflow-y: hidden;
1384    -webkit-overflow-scrolling: touch;
1385  }
1386  .qtbl {
1387    width: 100%;
1388    min-width: 42rem; /* 672px — table scrolls horizontally below this */
1389    border-collapse: collapse;
1390    table-layout: fixed;
1391  }
1392  .qtbl col.qtbl-c1 { width: 24%; }
1393  .qtbl col.qtbl-c2 { width: 58%; }
1394  .qtbl col.qtbl-c3 { width: 18%; }
1395  .qtbl thead th {
1396    background: var(--qtbl-header-bg);
1397    color: var(--qtbl-header-text);
1398    font-weight: 600;
1399    font-size: 1.125rem; /* 18px */
1400    line-height: 1.6;
1401    text-align: left;
1402    padding: 1rem; /* 16px */
1403    height: 3.8125rem; /* 61px */
1404    box-sizing: border-box;
1405    border-bottom: 1px solid var(--qtbl-border);
1406    vertical-align: middle;
1407  }
1408  .qtbl thead th:not(:last-child),
1409  .qtbl tbody td:not(:last-child) {
1410    border-right: 1px solid var(--qtbl-border);
1411  }
1412  .qtbl tbody tr + tr td {
1413    border-top: 1px solid var(--qtbl-border);
1414  }
1415  .qtbl tbody td {
1416    padding: 1rem; /* 16px */
1417    font-size: 1.125rem; /* 18px */
1418    line-height: 1.6;
1419    height: 3.8125rem; /* 61px */
1420    box-sizing: border-box;
1421    vertical-align: middle;
1422  }
1423  .qtbl tbody td.qtbl-label {
1424    color: var(--qtbl-label);
1425    font-weight: 600;
1426  }
1427  .qtbl tbody td.qtbl-value { color: var(--qtbl-value);
1427 overflow-wrap: anywhere; }
1428  .qtbl tbody td.qtbl-value--muted { color: var(--qtbl-muted); }
1429  .qtbl-subnote {
1430    display: block;
1431    margin-top: 0.25rem; /* 4px */
1432    font-size: 0.9375rem; /* 15px */
1433    color: var(--qtbl-muted);
1434  }
1435  /* Status column: text pills. */
1436  .qtbl-pill {
1437    display: inline-flex;
1438    align-items: center;
1439    gap: 0.4375rem; /* 7px */
1440    padding: 0.3125rem 0.6875rem; /* 5px 11px */
1441    border-radius: 624.9375rem; /* fully rounded, matches brand rounding */
1442    font-family: 'Space Grotesk', Arial, sans-serif;
1443    font-size: 0.8125rem; /* 13px */
1444    font-weight: 600;
1445    line-height: 1.2;
1446    letter-spacing: 0.01em;
1447    white-space: nowrap;
1448  }
1449  .qtbl-pill--live { color: var(--qtbl-live); background: rgba(52, 199, 138, 0.1); }
1450  .qtbl-pill--beta { color: var(--qtbl-beta); background: rgba(232, 164, 58, 0.1); }
1451  .qtbl-pill--dev  { color: #7a7a7a; background: rgba(255, 255, 255, 0.04); }
1452  .qtbl-dot {
1453    display: inline-block;
1454    width: 0.5625rem;  /* 9px */
1455    height: 0.5625rem; /* 9px */
1456    border-radius: 50%;
1457    vertical-align: middle;
1458    flex: none;
1459  }
1460  .qtbl-dot--live { background: var(--qtbl-live); }
1461  .qtbl-dot--beta { background: var(--qtbl-beta); }
1462  .qtbl-dot--dev  { background: var(--qtbl-dev);  }
1463  /* Responsive: below 768px each row becomes a stacked card */
1464  @media (max-width: 48rem) {
1465    .qtbl-scroll { overflow-x: hidden; }
1466    .qtbl { min-width: 0; }
1467    .qtbl colgroup,
1468    .qtbl thead { display: none; }
1469    .qtbl,
1470    .qtbl tbody,
1471    .qtbl tr,
1472    .qtbl td { display: block; width: auto; }
1473    .qtbl tbody tr {
1474      padding: 0.5rem 0 1rem;
1475    }
1476    .qtbl tbody tr + tr {
1477      border-top: 1px solid var(--qtbl-border);
1478    }
1479    .qtbl tbody td,
1480    .qtbl tbody tr + tr td {
1481      height: auto;
1482      border: 0 !important;
1483      padding: 0.375rem 1.25rem;
1484    }
1485    .qtbl tbody td.qtbl-label {
1486      font-size: 1.25rem; /* 20px */
1487      padding-top: 1rem;
1488    }
1489    .qtbl tbody td.qtbl-value::before,
1490    .qtbl tbody td.qtbl-status::before {
1491      content: attr(data-label);
1492      display: block;
1493      color: var(--qtbl-header-text);
1494      font-size: 0.8125rem; /* 13px */
1495      font-weight: 600;
1496      text-transform: uppercase;
1497      letter-spacing: 0.04em;
1498      margin-bottom: 0.375rem;
1499    }
1500  }
1501</style>
1502<div class="qtbl-wrap">
1503  <div class="qtbl-frame">
1504    <div class="qtbl-scroll">
1505      <table class="qtbl">
1506        <colgroup>
1507          <col class="qtbl-c1">
1508          <col class="qtbl-c2">
1509          <col class="qtbl-c3">
1510        </colgroup>
1511        <thead>
1512          <tr>
1513            <th>Dimension</th>
1514            <th>Current Capabilities</th>
1515            <th>Status</th>
1516          </tr>
1517        </thead>
1518        <tbody>
1519          <tr>
1520            <td class="qtbl-label">Components</td>
1521            <td class="qtbl-value" data-label="Current Capabilities">100 to 1,000 per board</td>
1522            <td class="qtbl-status" data-label="Status"><span class="qtbl-pill qtbl-pill--live"><span class="qtbl-dot qtbl-dot--live"></span>Live</span></td>
1523          </tr>
1524          <tr>
1525            <td class="qtbl-label">Pins to route</td>
1526            <td class="qtbl-value" data-label="Current Capabilities">No inherent limit, but the current best performance is around 2000-5000</td>
1527            <td class="qtbl-status" data-label="Status"><span class="qtbl-pill qtbl-pill--live"><span class="qtbl-dot qtbl-dot--live"></span>Live</span></td>
1528          </tr>
1529          <tr>
1530            <td class="qtbl-label">Pin density</td>
1531            <td class="qtbl-value" data-label="Current Capabilities">
1532              Under 20%
1533              <span class="qtbl-subnote">Pin density (%) = (Component Pin Area) / (Total Board Surface Area) &times; 100%</span>
1534            </td>
1535            <td class="qtbl-status" data-label="Status"><span class="qtbl-pill qtbl-pill--live"><span class="qtbl-dot qtbl-dot--live"></span>Live</span></td>
1536          </tr>
1537          <tr>
1538            <td class="qtbl-label" rowspan="2">Via types</td>
1539            <td class="qtbl-value" data-label="Current Capabilities">Through-hole vias</td>
1540            <td class="qtbl-status" data-label="Status"><span class="qtbl-pill qtbl-pill--live"><span class="qtbl-dot qtbl-dot--live"></span>Live</span></td>
1541          </tr>
1542          <tr>
1543            <td class="qtbl-value qtbl-value--muted" data-label="Current Capabilities">Blind &amp; buried vias</td>
1544            <td class="qtbl-status" data-label="Status"><span class="qtbl-pill qtbl-pill--dev"><span class="qtbl-dot qtbl-dot--dev"></span>In development</span></td>
1545          </tr>
1546          <tr>
1547            <td class="qtbl-label">BGA fanouts</td>
1548            <td class="qtbl-value" data-label="Current Capabilities">Automated fanout generation</td>
1549            <td class="qtbl-status" data-label="Status"><span class="qtbl-pill qtbl-pill--beta"><span class="qtbl-dot qtbl-dot--beta"></span>Beta</span></td>
1550          </tr>
1551          <tr>
1552            <td class="qtbl-label">Length matching</td>
1553            <td class="qtbl-value qtbl-value--muted" data-label="Current Capabilities">Coming soon</td>
1554            <td class="qtbl-status" data-label="Status"><span class="qtbl-pill qtbl-pill--dev"><span class="qtbl-dot qtbl-dot--dev"></span>In development</span></td>
1555          </tr>
1556          <tr>
1557            <td class="qtbl-label">RF</td>
1558            <td class="qtbl-value qtbl-value--muted" data-label="Current Capabilities">Pre-route RF nets, Quilter can handle the rest</td>
1559            <td class="qtbl-status" data-label="Status"><span class="qtbl-pill qtbl-pill--dev"><span class="qtbl-dot qtbl-dot--dev"></span>In development</span></td>
1560          </tr>
1561        </tbody>
1562      </table>
1563    </div>
1564  </div>
1565</div></div></div><div class="btn-wrapper no-margin"><a href="/changelog" class="secondary_btn w-inline-block"><div class="text-block">Check Product Updates</div><div class="secondary_btn-arrow w-embed"><svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
1566<circle cx="14" cy="14" r="13.4" stroke="currentColor" stroke-width="1.2"/>
1567<path d="M17.3941 17.3943L17.3941 10.606L10.6059 10.606" stroke="currentColor" stroke-width="1.2"/>
1568<path d="M10.6055 17.3955L17.3937 10.6073" stroke="currentColor" stroke-width="1.2"/>
1569</svg></div></a></div><div class="w-embed"></div></div></div></section></main><section class="footer"><div class="padding-global padding-section-large padding_bottom-0"><div class="container-large max-w-85"><div class="footer_logo-container"><div class="footer-newsletter-wrapper"><div class="gap-10"><p class="text-40 font-kabyta text-weight-bold">Subscribe to our newsletter</p></div><div class="footer-newsletter w-embed w-script"><!-- Newsletter form (footer). Styling is shared and lives in the site-wide
1570     head custom code, scoped to [id^="qtr-hs-"]. css:"" is required below:
1571     without it HubSpot renders the form in an iframe that page CSS can't reach. -->
1572<div id="qtr-hs-newsletter-footer"></div>
1573
1574<script charset="utf-8" type="text/javascript" src="//js-na2.hsforms.net/forms/embed/v2.js"></script>
vendor: 1 bytes, line 1574
1574
1575<script>
1576(function () {
1577  var TARGET = 'qtr-hs-newsletter-footer';
1578
1579  /* HubSpot's stock confirmation for this form is "Thanks for submitting the
1580     form." — generic, and odd wording for a newsletter signup. Swap in
1581     newsletter-specific copy once the message appears.
1582     Delete this block if/when the message is updated in HubSpot itself, so the
1583     copy has a single source of truth. */
1584  function replaceSuccessCopy() {
1585    var t0 = Date.now();
1586    var iv = setInterval(function () {
1587      var msg = document.querySelector('#' + TARGET + ' .submitted-message');
1588      if (msg) {
1589        msg.innerHTML =
1590          '<h5>You’re subscribed.</h5>' +
1591          '<p>Thanks — the next issue will land in your inbox.</p>';
1592        clearInterval(iv);
1593      } else if (Date.now() - t0 > 15000) {
1594        clearInterval(iv);
1595      }
1596    }, 120);
1597  }
1598
1599  function init() {
1600    if (!window.hbspt || !window.hbspt.forms) return false;
1601    var el = document.getElementById(TARGET);
1602    if (!el || el.dataset.hsInit) return true;
1603    el.dataset.hsInit = '1';
1604    hbspt.forms.create({
1605      portalId: "45946372",
1606      formId: "df2f44c9-e1e7-4df9-b4ce-72530f6be9f4",
1607      region: "na2",
1608      target: "#" + TARGET,
1609      css: "",
1610      onFormReady: function ($form) {
1611        var f = $form instanceof HTMLElement ? $form : ($form && $form[0]);
1612        if (!f) return;
1613        var e = f.querySelector('input[name="email"]');
1614        if (e && !e.placeholder) e.placeholder = 'Your email address';
1615        var b = f.querySelector('input[type="submit"], .hs-button');
1616        if (b) { if ('value' in b) b.value = 'Subscribe'; else b.textContent = 'Subscribe'; }
1617      },
1618      onFormSubmitted: replaceSuccessCopy
1619    });
1620    return true;
1621  }
1622  /* A consent-blocked HubSpot library may become available long after page load.
1623     Listen for actual script loads and Consent Pro v2 updates; do not load the
1624     library or grant any category here. init() retains its per-target guard. */
1625  var initTimer = null, initDone = false;
1626  function stopInitTimer() {
1627    if (initTimer !== null) { clearInterval(initTimer); initTimer = null; }
1628  }
1629  function attemptInit() {
1630    if (initDone) return true;
1631    if (!init()) return false;
1632    initDone = true;
1633    stopInitTimer();
1634    document.removeEventListener('load', onLibraryLoad, true);
1635    document.documentElement.removeEventListener('consentpro:consent-updated', retryInit);
1636    return true;
1637  }
1638  function retryInit() {
1639    if (attemptInit()) return;
1640    stopInitTimer();
1641    var retryStarted = Date.now();
1642    initTimer = setInterval(function () {
1643      if (attemptInit() || Date.now() - retryStarted > 10000) stopInitTimer();
1644    }, 100);
1645  }
1646  function onLibraryLoad(event) {
1647    if (event.target && event.target.tagName === 'SCRIPT') retryInit();
1648  }
1649  document.addEventListener('load', onLibraryLoad, true);
1650  document.documentElement.addEventListener('consentpro:consent-updated', retryInit);
1651  retryInit();
1652})();
1653</script>
1653</div></div></div><div class="footer_main-content"><a href="/?r=0" aria-current="page" class="footer_logo-link w-inline-block w--current"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/69f372a572b6e69c93adfcf4_Quilter%20Logo%20Blue.svg" loading="lazy" alt="" class="footer_logo-img"/></a><div class="w-layout-grid footer-grid"><div id="w-node-bad70ba2-28fc-db99-1a80-42f57ebc8b31-0346abaf" class="grid_crad-col-right"><div class="footer-column-title-wrapper"><div class="footer_col-label">Product</div><div class="footer_hr-lline-abel"></div></div><a href="/about" class="footer_text-link w-inline-block"><div class="footer_text">About</div></a><a href="/pricing" class="footer_text-link margin-top-12 w-inline-block"><div class="footer_text">Pricing</div></a><a href="/blog" class="footer_text-link margin-top-12 w-inline-block"><div class="footer_text">Blog</div></a><a href="/careers" class="footer_text-link margin-top-12 w-inline-block"><div class="footer_text">Careers</div></a><a href="/free-ai-pcb-design" class="footer_text-link margin-top-12 w-inline-block"><div class="footer_text">Free Version</div></a><a href="/ai-pcb-design-for-startups" class="footer_text-link margin-top-12 w-inline-block"><div class="footer_text">Startup Program</div></a></div><div id="w-node-_1168d037-db00-19bd-3e83-7a258e2a0e76-0346abaf" class="grid_crad-col-right"><div class="footer-column-title-wrapper"><div class="footer_col-label">Resources</div><div class="footer_hr-lline-abel"></div></div><a href="/support" class="footer_text-link w-inline-block"><div class="footer_text">Support Overview</div></a><a href="https://docs.quilter.ai/" class="footer_text-link margin-top-12 w-inline-block"><div class="footer_text">Documentation</div></a><a href="https://community.quilter.ai/" class="footer_text-link margin-top-12 w-inline-block"><div class="footer_text">Community</div></a><a href="https://help.quilter.ai/en/" class="footer_text-link margin-top-12 w-inline-block"><div class="footer_text">Help Center</div></a></div><div id="w-node-_4933466f-85b5-71f6-bcbf-15920346abce-0346abaf" class="grid_crad-col-right"><div class="footer-column-title-wrapper"><div class="footer_col-label">Company</div><div class="footer_hr-lline-abel"></div></div><a href="/terms" class="footer_text-link w-inline-block"><div class="footer_text">Terms of Service</div></a><a href="/privacy" class="footer_text-link margin-top-12 w-inline-block"><div class="footer_text">Privacy Policy</div></a><a fs-consent-element="open-preferences" href="#" class="footer_text-link margin-top-12 w-inline-block"><div class="footer_text">Cookie Preferences</div></a></div><div id="w-node-_4933466f-85b5-71f6-bcbf-15920346abe7-0346abaf" class="grid_crad-col-right"><div class="footer-column-title-wrapper"><div class="footer_col-label">Follow us</div><div class="footer_hr-lline-abel"></div></div><div><div class="footer_social-links"><a href="https://x.com/quilterai" target="_blank" class="soclal_link w-inline-block"><div class="social_link-icon w-embed"><div>
1654  <style>
1655    /* Scoped to this icon */
1656    .wf-hover-icon {
1657      color: #ffffff; /* default color */
1658      display: inline-block;
1659      cursor: pointer;
1660      transition: color .2s ease;
1661    }
1662    .wf-hover-icon rect,
1663    .wf-hover-icon path {
1664      transition: fill .2s ease, stroke .2s ease;
1665    }
1666    .wf-hover-icon:hover {
1667      color: #007BFF; /* hover color - brand blue */
1668    }
1669  </style>
1670
1671  <svg class="wf-hover-icon" width="60" height="60" viewBox="0 0 60 60" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"> <rect x="0.6" y="0.6" width="58.8" height="58.8" rx="29.4" stroke="currentColor" stroke-width="1.2"/> <path d="M36.4256 20H39.8185L32.4062 28.4718L41.1262 40H34.2985L28.9508 33.0082L22.8318 40H19.4369L27.3651 30.9385L19 20H26.001L30.8349 26.3908L36.4256 20ZM35.2349 37.9692H37.1149L24.9795 21.9241H22.9621L35.2349 37.9692Z" fill="currentColor"/> </svg>
1672</div></div></a><a href="https://www.linkedin.com/company/quilterai" target="_blank" class="soclal_link w-inline-block"><div class="social_link-icon w-embed"><div>
1673  <style>
1674    /* Scoped to this icon */
1675    .wf-hover-icon {
1676      color: #ffffff; /* default color */
1677      display: inline-block;
1678      cursor: pointer;
1679      transition: color .2s ease;
1680    }
1681    .wf-hover-icon rect,
1682    .wf-hover-icon path {
1683      transition: fill .2s ease, stroke .2s ease;
1684    }
1685    .wf-hover-icon:hover {
1686      color: #007BFF; /* hover color - brand blue */
1687    }
1688  </style>
1689
1690  <svg class="wf-hover-icon" width="60" height="60" viewBox="0 0 60 60" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"> <rect x="0.6" y="0.6" width="58.8" height="58.8" rx="29.4" stroke="currentColor" stroke-width="1.2"/> <path d="M39.8602 39.8602H35.7094V33.3633C35.7094 31.8156 35.682 29.8195 33.5492 29.8195C31.3891 29.8195 31.0609 31.5094 31.0609 33.2539V39.8602H26.9156V26.4945H30.8969V28.3211H30.9516C31.5039 27.2711 32.8602 26.1609 34.8781 26.1609C39.0836 26.1609 39.8602 28.9281 39.8602 32.5266V39.8602Z" fill="currentColor"/> <path d="M24.307 39.8602H20.1508V26.4945H24.307V39.8602Z" fill="currentColor"/> <path d="M22.2289 24.6734C20.8945 24.6734 19.8172 23.5961 19.8172 22.2672C19.8172 20.9383 20.8945 19.8609 22.2289 19.8609C23.5578 19.8609 24.6352 20.9383 24.6352 22.2672C24.6352 23.5906 23.5578 24.6734 22.2289 24.6734Z" fill="currentColor"/> </svg>
1691</div></div></a><a href="https://www.youtube.com/@QuilterAI" class="soclal_link w-inline-block"><div class="social_link-icon w-embed"><div>
1692  <style>
1693    /* Scoped to this icon */
1694    .wf-hover-icon {
1695      color: #ffffff; /* default color */
1696      display: inline-block;
1697      cursor: pointer;
1698      transition: color .2s ease;
1699    }
1700    .wf-hover-icon rect,
1701    .wf-hover-icon path {
1702      transition: fill .2s ease, stroke .2s ease;
1703    }
1704    .wf-hover-icon:hover {
1705      color: #007BFF; /* hover color - brand blue */
1706    }
1707  </style>
1708
1709  <svg class="wf-hover-icon" width="60" height="60" viewBox="0 0 60 60" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"> <rect x="0.6" y="0.6" width="58.8" height="58.8" rx="29.4" stroke="currentColor" stroke-width="1.2"/> <path d="M43.7211 24.3155C43.7211 24.3155 43.4477 22.3549 42.6055 21.494C41.5391 20.361 40.3469 20.3555 39.8 20.2888C35.8844 20 30.0055 20 30.0055 20H29.9945C29.9945 20 24.1156 20 20.2 20.2888C19.6531 20.3555 18.4609 20.361 17.3945 21.494C16.5523 22.3549 16.2844 24.3155 16.2844 24.3155C16.2844 24.3155 16 26.6204 16 28.9197V31.0747C16 33.3741 16.2789 35.679 16.2789 35.679C16.2789 35.679 16.5523 37.6395 17.3891 38.5004C18.4555 39.6334 19.8555 39.5946 20.4789 39.7167C22.7211 39.9334 30 40 30 40C30 40 35.8844 39.9889 39.8 39.7056C40.3469 39.639 41.5391 39.6334 42.6055 38.5004C43.4477 37.6395 43.7211 35.679 43.7211 35.679C43.7211 35.679 44 33.3796 44 31.0747V28.9197C44 26.6204 43.7211 24.3155 43.7211 24.3155ZM27.107 33.6906V25.6984L34.6703 29.7084L27.107 33.6906Z" fill="currentColor"/> </svg>
1710</div></div></a></div></div></div><div id="w-node-c46f8f68-8ef8-4631-87fa-46dc02bbb7d8-0346abaf" class="grid_crad-col-right"><div class="footer-column-title-wrapper"><div class="footer_col-label">Legal</div><div class="footer_hr-lline-abel"></div></div><a href="/terms" class="footer_text-link w-inline-block"><div class="footer_text">Terms of Service</div></a><a href="/privacy" class="footer_text-link margin-top-12 w-inline-block"><div class="footer_text">Privacy Policy</div></a><a fs-consent-element="open-preferences" href="#" class="footer_text-link margin-top-12 w-inline-block"><div class="footer_text">Cookie Preferences</div></a></div><div id="w-node-_58d07bfa-1ab0-993f-c0a3-abc8352cdc4a-0346abaf" class="grid_crad-col-right"><div class="footer-column-title-wrapper"><div class="footer_col-label">Solutions</div><div class="footer_hr-lline-abel"></div></div><div class="dropdown-solutions grid-gap-40"><div class="dropdown-solutions-column"><div class="tag-wrapper"><p class="solution-footer-tag">By Design Type</p></div><div class="w-dyn-list"><div role="list" class="dropdown-solution-list-footer w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/solutions/test-fixtures-harnesses" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Test Fixtures &amp; Harnesses</p><p class="text-12">Shave 4–6 weeks off board bring-up</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/ic-evaluation-boards" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">IC Evaluation Boards</p><p class="text-12">Cuts layout cycles from weeks to hours; enables rapid, fabrication-ready design iteration</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/design-validation-boards" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Design Validation Boards</p><p class="text-12">Shrinks validation cycles from months to days</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/backplane-interconnect-boards" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Backplane &amp; Interconnect Boards</p><p class="text-12">From 30+ days to under 24 hours</p></a></div></div></div></div><div class="dropdown-solutions-column"><div class="tag-wrapper"><p class="solution-footer-tag">By Industry</p></div><div class="w-dyn-list"><div role="list" class="dropdown-solution-list-footer w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/solutions/semiconductors" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Semiconductors</p><p class="text-12">Bring-up ready in a single workday (first candidates often appear within the first hour).</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/robotics" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Robotics</p><p class="text-12">Compress board bring-up from 4 weeks to under 1 day</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/consumer-electronics" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Consumer Electronics</p><p class="text-12">Boards ready in a single workday (first candidates often appear within the first hour)</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/aerospace-defense" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Aerospace &amp; defense</p><p class="text-12">Faster board bring-up for validation and TRR</p></a></div></div></div></div><div class="dropdown-solutions-column"><div class="tag-wrapper"><p class="solution-footer-tag">By Role</p></div><div class="w-dyn-list"><div role="list" class="dropdown-solution-list-footer w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/solutions/r-d-managers" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">R&amp;D managers</p><p class="text-12">Accelerate board bring-up</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/pcb-designers" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">PCB Designers</p><p class="text-12">Full fab-ready designs in under 4 hours</p></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/electrical-engineers" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Electrical engineers</p><p class="text-12">Schematic to fab-ready in under 4 hours</p></a></div></div></div></div></div></div><div id="w-node-a8b710b0-9e93-fcf9-91f9-37d309f59643-0346abaf" class="grid_crad-col-right"><div class="footer-column-title-wrapper"><div class="footer_col-label">Hardware-Rich Development</div><div class="footer_hr-lline-abel"></div></div><div><div class="w-dyn-list"><div role="list" class="hrd-list w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/blog/engineering-intuition" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">How Engineering Intuition Is Built Through Repair</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/collin-ruzvidzo-and-the-making-of-engineering-intuition" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Collin Ruzvidzo and the Making of Engineering Intuition</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/new-routing-breaking-old-tools" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Why New Routing Problems Keep Breaking Old Tools</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/signal-integrity-engineers" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Why the Best Signal Integrity Engineers Stop Thinking in Silos</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/kalyan-vaddagiri-on-mathematics-multi-physics" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Kalyan Vaddagiri on Mathematics, Multi-Physics, and the Future of Engineering Judgment</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/hardware-team-alignment-why-good-engineers-still-miss-each-other" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Hardware Team Alignment: Why Good Engineers Still Miss Each Other</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/engineering-optimization-in-real-hardware-jacob-freking" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Engineering Optimization in Real Hardware: Jacob Freking on Speed, Margin, and the Systems Mindset</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/simulation-is-not-validation" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">
1710Simulation Is Not Validation: How Overconfidence in Models Slows Hardware Teams Down</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/pcb-applications-automated" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">PCB Applications and Constraint Literacy: Why Automated PCB Layout Has to Learn Physics First</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/constrained-optimization-pcb-design-eda-automation" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Constrained Optimization in PCB Design: Geometry, Reinforcement Learning, and the Future of EDA Automation</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/multi-objective-optimization-ai-pcb-layout" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Multi Objective Optimization and AI PCB Layout: Why There Is No Optimal Board</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/reward-functions-in-ai-pcb-design" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Reward Functions in AI PCB Design</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/technology-is-easy-people-are-hard-pooya-tadayon" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Technology Is Easy. People Are Hard. Pooya Tadayon.</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/richard-whitney-and-how-quilters-acting-head-of-product-thinks-about-complexity" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Richard Whitney and How Quilter’s acting Head of Product thinks about complexity</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/no-magic-just-structure-katie-scholl-on-logic-responsibility" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">No Magic, Just Structure: Katie Scholl on Logic, Responsibility, and Building Things That Matter</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/stephanie-ngo-and-the-invisible-architecture-of-momentum" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Stephanie Ngo and the Invisible Architecture of Momentum</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/stelios-stavroulakis-learning-what-not-to-do-and-building-what-comes-next" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Stelios Stavroulakis: Learning What Not to Do, and Building What Comes Next</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/learning-engineering-as-a-craft-osman-romero" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Learning as a Discipline, Engineering as a Craft | Quilter’s Osman Romero</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/james-krejcarek-on-the-joy-of-discovery" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Finding the Possible in the Impossible: James Krejcarek on Toolmaking, Trust, and the Joy of Discovery</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/stephen-newberry-and-the-discipline-of-signal-integrity" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Stephen Newberry and the Discipline of Signal Integrity</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/fpga-to-ai-ben-on-curiosity-integrity-and-building-better-boards" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">FPGA to AI: Ben on Curiosity, Integrity, and Building Better Boards</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/signals-to-smarter-systems-harshat-on-ai" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Signals to Smarter Systems — Harshat on Math, AI Learning &amp; Hardware Evolution</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/aerospace-to-ai-boris-on-curiosity-and-craft" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Aerospace to AI: Boris on Curiosity and Craft</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/from-silicon-valley-to-startups-dan-gudino-on-curiosity-and-circuitry" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">From Silicon Valley to Startups: Dan Gudino on Curiosity and Circuitry</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/from-geometry-to-circuits-chi-han-peng" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">From Geometry to Circuits: Chi-Han Peng on Seeing the Patterns Beneath It All</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/nanometers-to-new-dimensions-fei" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Nanometers to New Dimensions: Fei on Rediscovering the Thrill of Zero to One</p></a></div><div role="listitem" class="w-dyn-item">
1710<a href="/blog/cad-automation-circuit-comprehension-jarvis-autey" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">CAD Automation to Circuit Comprehension: Jarvis Autey on Learning What Machines Can’t Yet Know</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/from-rockets-to-rapid-iteration-sam-on-purposeful-engineering" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">From Rockets to Rapid Iteration: Sam on Purposeful Engineering</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/staying-under-dunbars-number-nick-faughey" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Staying Under Dunbar’s Number: Nick Faughey on Infrastructure, Agility, and the Joy of Building</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/fayaz-rahman-on-building-smarter-systems" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">From Research to Routing: Fayaz Rahman on Learning Fast and Building Smarter Systems</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/ml-ops-engineers-fariz-rahman" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">MLOps Engineers | Open Source Roots, Hardware Frontiers, and Fariz Rahman</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/beyond-parity-geometry-in-ai-and-superhuman-engineering" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Beyond Parity: Geometry in AI and Superhuman Engineering</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/lessons-on-power-integrity-from-scott-witcher" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Lessons on Power Integrity from Scott Witcher</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/curiosity-in-power-electronics-reflections-with-jovana-plavsic" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Curiosity in Power Electronics: Reflections with Jovana Plavšić</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/from-gan-to-magnetics-how-jovana-plavsic-builds-hardware-with-curiosity-and-precision" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">From GaN to Magnetics: How Jovana Plavšić Builds Hardware with Curiosity and Precision</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/scott-witcher-on-power-integrity-systems-thinking-and-humble-leadership" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Scott Witcher on Power Integrity, Systems Thinking, and Humble Leadership</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/technical-leadership-skills-and-meditations-what-it-means-to-truly-build-with-derrek-cooper" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Technical Leadership Skills and Meditations: What It Means to Truly Build with Derrek Cooper</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/lasers-electrons-and-the-courage-to-build-the-impossible" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">
1710Lasers, Electrons, and the Courage to Build the Impossible</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/aircraft-systems-engineering-beyond-the-review-human-chemistry-and-the-quiet-craft-of-good-engineering" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Aircraft Systems Engineering Beyond the Review: Human Chemistry, and the Quiet Craft of Good Engineering</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/what-is-a-technical-leader-derrek-coopers-answer" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">What is a Technical Leader? Derrek Cooper&#x27;s Answer</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/bjorn-manuel-hegelich-on-dangerous-lasers-the-art-of-letting-go-and-building-the-next-collider-by-hand" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Björn Manuel Hegelich on Dangerous Lasers, the Art of Letting Go, and Building the Next Collider by Hand</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/carol-erikson-on-systems-thinking-technical-leadership-and-building-teams-that-actually-work" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Carol Erikson on Systems Thinking, Technical Leadership, and Building Teams That Actually Work</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/the-hidden-hero-of-hardware-test-engineering-and-paul-mcdonald" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">The Hidden Hero of Hardware: Test Engineering and Paul McDonald</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/design-for-reliability-design-for-manufacturability-building-smarter-test-systems" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Design for Reliability, Design for Manufacturability: Building Smarter Test Systems</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/design-with-your-hands-lead-with-your-eyes-nancy-smith-and-the-grounded-future-of-pcb-design" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Design with Your Hands, Lead with Your Eyes — Nancy Smith and the Grounded Future of PCB Design</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/on-t-shaped-engineers-and-hardware-development-transparency-and-the-generalist-path" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">On T-Shaped Engineers and Hardware Development: Transparency and the Generalist Path</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/the-joy-is-the-job-nancy-smith-on-crafting-beautiful-hardware-one-pcb-at-a-time" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">The Joy is the Job: Nancy Smith on Crafting Beautiful Hardware, One PCB at a Time</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/transparency-t-shaped-engineers-and-fpgas-interview-with-jami-friedman" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Transparency, T-Shaped Engineers, and FPGAs: Interview with Jami Friedman</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/lessons-in-shipping-test-engineering-and-technical-leadership" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Just Ship It: Lessons in Grit, Test, and Team from Paul Robinson&#x27;s Hardware Odyssey</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/spinning-fast-and-thinking-sharp-paul-robinsoon-hardware-urgency-and-building-like-you-mean-it" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">What Hardware Teaches You About Leadership and Letting Go with Paul Robinson</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/bet-big-break-rules-a-fireside-with-sergiy-nesterenko" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Bet Big, Break Rules — A Fireside with Sergiy Nesterenko</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/rethinking-hardware-agile-lessons-from-dr-lucas-fraile" 
1710class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Rethinking Hardware: Agile Lessons from Dr. Lucas Fraile</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/engineering-is-an-art-hardware-interview-with-carolina-hubbard" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Engineering Is an Art: Hardware Interview with Carolina Hubbard</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/the-truth-about-engineering-were-all-just-trying-not-to-redesign-the-whole-thing-again" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">The Truth About Engineering: We&#x27;re All Just Trying Not to Redesign the Whole Thing Again</p></a></div><div role="listitem" class="w-dyn-item"><a href="/blog/design-for-quality-dr-lucas-frailes-insights" class="dropdown-solution-footer w-inline-block"><p class="text-16 text-weight-medium currentcolor">Design for Quality: Dr. Lucas Fraile&#x27;s Insights</p></a></div></div></div></div></div></div></div><div class="footer_logo"><img src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/68cdea2b87ed8697654e9abb_footer-big-logo.svg" loading="eager" alt="" class="footer-logo-img"/><div class="copyright-text is-centered">© <span class="copyright-date">2026</span> Quilter AI. All rights reserved.</div></div></div></div></section></div><div fs-consent-styledCategories="false" fs-consent-element="internal-component" class="fs-consent_component-2"><div class="consent_placeholder"><div fs-consent-version="2" fs-consent-element="placeholder" class="consent_placeholder_iframe"><div class="consent_placeholder_wrapper"><div fs-consent-translationkey="placeholder.message" class="consent_placeholder_text">Iframe is blocked. Accept cookies to load it.</div><div fs-consent-element="internal-buttons-wrapper" class="consent_placeholder_buttons"><button type="button" fs-consent-element="open-preferences" class="consent_placeholder_prefs"><div fs-consent-translationkey="common.preferences">Preferences</div></button><button type="button" fs-consent-element="allow" class="consent_placeholder_accept"><div fs-consent-translationkey="common.acceptAll">Accept All</div></button></div></div></div></div><div class="w-embed"><div class="fs-consent_component-2" data-quilter-consent-v2-source="true"><div class="fs-consent_banner-2" fs-consent-element="banner" fs-consent-instance="opt-in" fs-consent-version="2" id="quilter-v2-opt-in-banner"><div class="fs-consent_banner_wrapper"><h2 class="fs-consent_banner_heading">Your Privacy</h2><p class="fs-consent_banner_paragraph">Welcome to Quilter! We’re glad you’re here and want you to know that we respect your privacy and your right to control how we collect and use your personal data. Please read our <a class="inline-link" href="/privacy">Privacy Policy</a> to learn about our privacy practices, or click <strong fs-consent-element="internal-banner-text">“Your preferences”</strong> to exercise control over your data.</p><div class="fs-consent_banner_buttons" fs-consent-element="internal-buttons-wrapper"><a class="fs-consent_allow-3 w-button" fs-consent-element="allow" href="#">I understand</a><a class="fs-consent_prefs_link-2" fs-consent-element="open-preferences" href="#">Your preferences</a><a class="fs-consent_decline-2 w-button" fs-consent-element="deny" href="#">Reject All</a></div></div></div><div class="fs-consent_prefs-2" fs-consent-element="preferences" fs-consent-instance="opt-in" fs-consent-version="2" id="quilter-v2-opt-in-preferences"><div class="fs-consent_prefs_wrapper-2"><div class="fs-consent_prefs_form-block w-form"><form class="fs-consent_prefs_form-2" data-name="Consent opt-in" fs-consent-element="form" id="quilter-v2-opt-in-email-form" method="get" name="consent-opt-in"><div class="fs-consent_prefs_popup"><div class="fs-consent_prefs_header"><div class="fs-consent_prefs_heading"><strong>Manage Consent Preferences by Category</strong></div></div><div class="fs-consent_prefs_list" fs-consent-element="internal-categories-wrapper"><div class="fs-consent_prefs_option" fs-consent-category="essential" fs-consent-element="category"><div class="fs-consent_checkbox_field"><div class="fs-consent_checkbox_label">Essentials</div><div><strong>Always active</strong></div></div><p class="fs-consent_prefs_description">Necessary for the site to function. Always On.<br/></p></div><div class="fs-consent_prefs_option" fs-consent-category="marketing" fs-consent-element="category"><label class="w-checkbox fs-consent_checkbox_field"><input class="w-checkbox-input fs-consent_checkbox" data-name="marketing" fs-consent-element="checkbox-marketing" id="quilter-v2-opt-in-marketing" name="marketing" type="checkbox"/><span class="fs-consent_checkbox_label w-form-label" for="quilter-v2-opt-in-marketing">Marketing</span></label><p class="fs-consent_prefs_description">Used for targeted advertising.<br/></p></div><div class="fs-consent_prefs_option" fs-consent-category="personalization" fs-consent-element="category"><label class="w-checkbox fs-consent_checkbox_field"><input class="w-checkbox-input fs-consent_checkbox" data-name="personalization" fs-consent-element="checkbox-personalization" id="quilter-v2-opt-in-personalization" name="personalization" type="checkbox"/><span class="fs-consent_checkbox_label w-form-label" for="quilter-v2-opt-in-personalization">Personalization</span></label><p class="fs-consent_prefs_description">Remembers your preferences and provides enhanced features.<br/></p></div><div class="fs-consent_prefs_option" fs-consent-category="analytics" fs-consent-element="category"><label class="w-checkbox fs-consent_checkbox_field"><input class="w-checkbox-input fs-consent_checkbox" data-name="analytics" fs-consent-element="checkbox-analytics" id="quilter-v2-opt-in-analytics" name="analytics" type="checkbox"/><span class="fs-consent_checkbox_label w-form-label" for="quilter-v2-opt-in-analytics">Analytics</span></label><p class="fs-consent_prefs_description">Measures usage and improves your experience.<br/></p></div></div><div class="fs-consent_prefs_buttons"><a class="fs-consent_decline-2 w-button" fs-consent-element="deny" href="#">Reject All</a><a class="fs-consent_allow-2 w-button" fs-consent-element="allow" href="#">Accept All</a><input class="fs-consent_prefs_submit w-button" data-wait="Please wait..." type="submit" value="Save Preferences"/></div><button aria-label="Close preferences" class="fs-consent_prefs_close" fs-consent-element="close" type="button"><div class="fs-consent_prefs_close-icon w-embed"><svg fill="none" height="100%" viewbox="0 0 16 17" width="100%" xmlns="http://www.w3.org/2000/svg"><g><path d="M3.41424 2.25L2.00003 3.66421L6.58582 8.25L1.99988 12.8359L3.41409 14.2502L8.00003 9.66421L12.5854 14.2496L13.9996 12.8354L9.41424 8.25L13.9995 3.66476L12.5853 2.25055L8.00003 6.83579L3.41424 2.25Z" fill="currentColor" id="quilter-v2-opt-in-icon"></path></g></svg></div></button></div></form><div class="w-form-done"><div>Thank you! Your submission has been received!</div></div><div class="w-form-fail"><div>Oops! Something went wrong while submitting the form.</div></div></div><div class="fs-consent_prefs_overlay" fs-consent-element="close"></div></div></div><div class="fs-consent_banner-2" fs-consent-element="banner" fs-consent-instance="opt-out" fs-consent-version="2" id="quilter-v2-opt-out-banner"><div class="fs-consent_banner_wrapper"><h2 class="fs-consent_banner_heading">Your Privacy</h2><p class="fs-consent_banner_paragraph">Welcome to Quilter! We’re glad you’re here and want you to know that we respect your privacy and your right to control how we collect and use your personal data. Please read our <a class="inline-link" href="/privacy">Privacy Policy</a> to learn about our privacy practices, or click <strong fs-consent-element="internal-banner-text">“Your preferences”</strong> to exercise control over your data.</p>
1710<div class="consent_gpc-honored" fs-consent-element="gpc-honored"><div class="consent_gpc-honored-icon w-embed"><svg class="size-6" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
1711<path clip-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm13.36-1.814a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z" fill-rule="evenodd"></path>
1712</svg></div><div class="consent_gpc-honored_text">The GPC signal has been honored.</div></div><div class="fs-consent_banner_buttons" fs-consent-element="internal-buttons-wrapper"><a class="fs-consent_allow-3 w-button" fs-consent-element="allow" href="#">I understand</a><a class="fs-consent_prefs_link-2" fs-consent-element="open-preferences" href="#">Your preferences</a><a class="fs-consent_decline-2 w-button" fs-consent-element="deny" href="#">Reject All</a></div></div></div><div class="fs-consent_prefs-2" fs-consent-element="preferences" fs-consent-instance="opt-out" fs-consent-version="2" id="quilter-v2-opt-out-preferences"><div class="fs-consent_prefs_wrapper-2"><div class="fs-consent_prefs_form-block w-form"><form class="fs-consent_prefs_form-2" data-name="Consent opt-out" fs-consent-element="form" id="quilter-v2-opt-out-email-form" method="get" name="consent-opt-out"><div class="fs-consent_prefs_popup"><div class="fs-consent_prefs_header"><div class="fs-consent_prefs_heading"><strong>Manage Consent Preferences by Category</strong></div></div><div class="consent_gpc-honored" fs-consent-element="gpc-honored"><div class="consent_gpc-honored-icon w-embed"><svg class="size-6" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
1713<path clip-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm13.36-1.814a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z" fill-rule="evenodd"></path>
1714</svg></div><div class="consent_gpc-honored_text">The GPC signal has been honored.</div></div><div class="fs-consent_prefs_list" fs-consent-element="internal-categories-wrapper"><div class="fs-consent_prefs_option" fs-consent-category="essential" fs-consent-element="category"><div class="fs-consent_checkbox_field"><div class="fs-consent_checkbox_label">Essentials</div><div><strong>Always active</strong></div></div><p class="fs-consent_prefs_description">Necessary for the site to function. Always On.<br/></p></div><div class="fs-consent_prefs_option" fs-consent-category="marketing" fs-consent-element="category"><label class="w-checkbox fs-consent_checkbox_field"><input class="w-checkbox-input fs-consent_checkbox" data-name="marketing" fs-consent-element="checkbox-marketing" id="quilter-v2-opt-out-marketing" name="marketing" type="checkbox"/><span class="fs-consent_checkbox_label w-form-label" for="quilter-v2-opt-out-marketing">Marketing</span></label><p class="fs-consent_prefs_description">Used for targeted advertising.<br/></p></div><div class="fs-consent_prefs_option" fs-consent-category="personalization" fs-consent-element="category"><label class="w-checkbox fs-consent_checkbox_field"><input class="w-checkbox-input fs-consent_checkbox" data-name="personalization" fs-consent-element="checkbox-personalization" id="quilter-v2-opt-out-personalization" name="personalization" type="checkbox"/><span class="fs-consent_checkbox_label w-form-label" for="quilter-v2-opt-out-personalization">Personalization</span></label><p class="fs-consent_prefs_description">Remembers your preferences and provides enhanced features.<br/></p></div><div class="fs-consent_prefs_option" fs-consent-category="analytics" fs-consent-element="category"><label class="w-checkbox fs-consent_checkbox_field"><input class="w-checkbox-input fs-consent_checkbox" data-name="analytics" fs-consent-element="checkbox-analytics" id="quilter-v2-opt-out-analytics" name="analytics" type="checkbox"/><span class="fs-consent_checkbox_label w-form-label" for="quilter-v2-opt-out-analytics">Analytics</span></label><p class="fs-consent_prefs_description">Measures usage and improves your experience.<br/></p></div></div><div class="fs-consent_prefs_buttons"><a class="fs-consent_decline-2 w-button" fs-consent-element="deny" href="#">Reject All</a><a class="fs-consent_allow-2 w-button" fs-consent-element="allow" href="#">Accept All</a><input class="fs-consent_prefs_submit w-button" data-wait="Please wait..." type="submit" value="Save Preferences"/></div><button aria-label="Close preferences" class="fs-consent_prefs_close" fs-consent-element="close" type="button"><div class="fs-consent_prefs_close-icon w-embed"><svg fill="none" height="100%" viewbox="0 0 16 17" width="100%" xmlns="http://www.w3.org/2000/svg"><g><path d="M3.41424 2.25L2.00003 3.66421L6.58582 8.25L1.99988 12.8359L3.41409 14.2502L8.00003 9.66421L12.5854 14.2496L13.9996 12.8354L9.41424 8.25L13.9995 3.66476L12.5853 2.25055L8.00003 6.83579L3.41424 2.25Z" fill="currentColor" id="quilter-v2-opt-out-icon"></path></g></svg></div></button></div></form><div class="w-form-done"><div>Thank you! Your submission has been received!</div></div><div class="w-form-fail"><div>Oops! Something went wrong while submitting the form.</div></div></div><div class="fs-consent_prefs_overlay" fs-consent-element="close"></div></div></div></div>
1715</div></div>
1715<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=68b7918b99fa38e5185dc4e6" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
1715<script src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6/js/quilter-staging.c26fdf24.6a5e4574bdcf4f0d.js" type="text/javascript" integrity="sha384-qkdq7vUV7lhn7LY+QlhHLiJJ954MM6eHRe5K0njqPlWYmZPTa9BsyxcLQMBAOSC9" crossorigin="anonymous"></script>
1715
1716<!-- Copyright year -->
1717<script>
1718  document.addEventListener('DOMContentLoaded', function () {
1719    var copyrightElement = document.querySelector('.copyright-date');
1720    if (copyrightElement) {
1721      copyrightElement.textContent = new Date().getFullYear();
1722    }
1723  });
1724</script>
1724
1725
1726<!-- ============ Accordion / FAQ ============
1727     One implementation for every FAQ on the site. Markup contract:
1728       .accordion_item  (or .faq-item)
1729         .accordion-header_wrapper   (or .faq-header-wrapper)  <- click target
1730         .accordion-content_wrapper  (or .faq-content-wrapper) <- animated
1731           .accordion_icon-line.ver  (or .faq-icon)            <- rotates
1732
1733     This replaces an earlier GSAP version that called gsap.set() even though
1734     GSAP is never loaded on this site - it threw on every page and did
1735     nothing, which is why /pricing needed its own page-level copy. That copy
1736     has been removed; this is now the single source of truth.
1737
1738     Height is animated via max-height rather than height:auto so it needs no
1739     library. The open item is re-measured on resize because a reflowed answer
1740     changes its scrollHeight. -->
1741<style>
1742  .accordion-header_wrapper{cursor:pointer}
1743  .accordion-content_wrapper{overflow:hidden;max-height:0;transition:max-height .4s ease}
1744  .accordion_icon-line.ver{transition:transform .4s ease;transform-origin:center}
1745  /* closed -> vertical stroke rotated so the icon reads as a plus */
1746  .accordion_item:not(.is-open) .accordion_icon-line.ver{transform:rotate(90deg)}
1747</style>
1748<script>
1749  document.addEventListener('DOMContentLoaded', function () {
1750    var items = Array.prototype.slice.call(document.querySelectorAll('.accordion_item, .faq-item'));
1751    if (!items.length) return;
1752
1753    function contentOf(item) {
1754      return item.querySelector('.accordion-content_wrapper, .faq-content-wrapper');
1755    }
1756    function openItem(item) {
1757      var c = contentOf(item);
1758      item.classList.add('is-open');
1759      if (c) c.style.maxHeight = c.scrollHeight + 'px';
1760    }
1761    function closeItem(item) {
1762      var c = contentOf(item);
1763      item.classList.remove('is-open');
1764      if (c) c.style.maxHeight = '0px';
1765    }
1766
1767    items.forEach(function (item, index) {
1768      var header = item.querySelector('.accordion-header_wrapper, .faq-header-wrapper');
1769      if (!header) return;
1770
1771      // First item open, the rest closed.
1772      if (index === 0) openItem(item); else closeItem(item);
1773
1774      header.addEventListener('click', function () {
1775        var wasOpen = item.classList.contains('is-open');
1776        items.forEach(closeItem);
1777        if (!wasOpen) openItem(item);
1778      });
1779    });
1780
1781    window.addEventListener('resize', function () {
1782      var open = document.querySelector('.accordion_item.is-open .accordion-content_wrapper, .faq-item.is-open .faq-content-wrapper');
1783      if (open) open.style.maxHeight = open.scrollHeight + 'px';
1784    });
1785  });
1786</script>
1786
1787
1788<!-- Lenis -->
1789<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/lenis.min.js" defer></script>
vendor: 1 bytes, line 1789
1789
1790<script>
1791  window.addEventListener('load', function(){
1792    if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
1793    if (typeof Lenis !== 'function') return;
1794
1795    var lenis = new Lenis({ smoothWheel: true, smoothTouch: false });
1796
1797    /* Exposed so overlays (e.g. the startup application modal) can pause page
1798       scrolling while they're open. Lenis scrolls the page programmatically, so
1799       an overflow:hidden lock alone does not stop it — it has to be told to stop. */
1800    window.lenis = lenis;
1801
1802    lenis.on('scroll', function () {
1803      if (window.ScrollTrigger) { ScrollTrigger.update(); }
1804    });
1805
1806    if (window.gsap && gsap.ticker){
1807      gsap.ticker.add(function (t) { lenis.raf(t * 1000); });
1808      gsap.ticker.lagSmoothing(0);
1809    } else {
1810      function raf(time){ lenis.raf(time); requestAnimationFrame(raf); }
1811      requestAnimationFrame(raf);
1812    }
1813  });
1814</script>
1814
1815
1816<!-- Mobile mega menu logic + "All" links behavior -->
1817<script>
1818  document.addEventListener('DOMContentLoaded', function () {
1819    /* --------------------------------
1820       MOBILE MEGA MENU TOGGLE
1821    ---------------------------------- */
1822    var navBtn   = document.querySelector('.navbar-btn');
1823    var megaMenu = document.querySelector('.mega-menu-wrapper');
1824
1825    if (navBtn && megaMenu) {
1826      var iconOpen  = navBtn.querySelector('.navbar-btn-open');
1827      var iconClose = navBtn.querySelector('.navbar-btn-close');
1828
1829      // Initial icon state
1830      if (iconOpen)  iconOpen.style.display  = 'block';
1831      if (iconClose) iconClose.style.display = 'none';
1832
1833      function openMenu() {
1834        megaMenu.classList.add('is-open');
1835        if (iconOpen)  iconOpen.style.display  = 'none';
1836        if (iconClose) iconClose.style.display = 'block';
1837
1838        document.body.classList.add('nav-open');
1839        document.documentElement.classList.add('nav-open');
1840      }
1841
1842      function closeMenu() {
1843        megaMenu.classList.remove('is-open');
1844        if (iconOpen)  iconOpen.style.display  = 'block';
1845        if (iconClose) iconClose.style.display = 'none';
1846
1847        document.body.classList.remove('nav-open');
1848        document.documentElement.classList.remove('nav-open');
1849      }
1850
1851      navBtn.addEventListener('click', function (e) {
1852        e.preventDefault();
1853        var isOpen = megaMenu.classList.contains('is-open');
1854        if (isOpen) closeMenu();
1855        else openMenu();
1856      });
1857
1858      // Close mega menu on ESC
1859      document.addEventListener('keydown', function (e) {
1860        if (e.key === 'Escape' && megaMenu.classList.contains('is-open')) {
1861          closeMenu();
1862        }
1863      });
1864
1865      // Reset to closed state when resizing up to desktop
1866      window.addEventListener('resize', function () {
1867        if (window.innerWidth >= 992) {
1868          closeMenu();
1869        }
1870      });
1871    }
1872
1873    /* --------------------------------
1874       "ALL" LINKS: CLOSE RESPECTIVE
1875       DROPDOWN USING WEBFLOW'S LOGIC
1876    ---------------------------------- */
1877    var dropdownMap = {
1878      'all-link-product':    'dropdown-content-product',
1879      'all-link-resources':  'dropdown-content-resources',
1880      'all-link-pricing':    'dropdown-content-pricing',
1881      'all-link-company':    'dropdown-content-company'
1882    };
1883
1884    Object.keys(dropdownMap).forEach(function (linkId) {
1885      var dropdownId = dropdownMap[linkId];
1886      var linkEl     = document.getElementById(linkId);
1887      var dropdownEl = document.getElementById(dropdownId);
1888
1889      if (!linkEl || !dropdownEl) return;
1890
1891      linkEl.addEventListener('click', function (e) {
1892        e.preventDefault();
1893        e.stopPropagation();
1894
1895        var wrapper = dropdownEl.closest('.w-dropdown');
1896        if (!wrapper) return;
1897
1898        var toggleEl = wrapper.querySelector('.w-dropdown-toggle');
1899        if (toggleEl) toggleEl.click(); // Webflow handles closing
1900      });
1901    });
1902  });
1903</script>
1903
1904
1905<!-- Surface popup wiring removed: the startup application form is now a HubSpot
1906     modal on /ai-pcb-design-for-startups, and Get Started buttons link to /demo. -->
1907
1908<!-- Desktop dropdown toggle animation styling (DESKTOP ONLY) -->
1909<style>
1910  @media (min-width: 992px) {
1911    .main_navbar-component .mega-menu-wrapper.is-desktop .w-dropdown-toggle {
1912      transition: opacity 200ms ease, background-color 200ms ease, color 200ms ease;
1913      background-color: transparent;
1914      color: #fff;
1915    }
1916
1917    .main_navbar-component .mega-menu-wrapper.is-desktop .w-dropdown-toggle .arrow-image {
1918      transition: transform 200ms ease;
1919      transform: rotate(0deg);
1920      transform-origin: center;
1921    }
1922
1923    .main_navbar-component.has-open-nav-dropdown
1924    .mega-menu-wrapper.is-desktop
1925    .w-dropdown-toggle {
1926      opacity: 0.4;
1927    }
1928
1929    .main_navbar-component .mega-menu-wrapper.is-desktop .w-dropdown-toggle:hover {
1930      opacity: 1;
1931      background-color: #191919;
1932      color: #fff;
1933    }
1934
1935    .main_navbar-component.has-open-nav-dropdown
1936    .mega-menu-wrapper.is-desktop
1937    .w-dropdown-toggle.is-open {
1938      opacity: 1;
1939      background-color: #191919;
1940      color: #fff;
1941    }
1942
1943    .main_navbar-component .mega-menu-wrapper.is-desktop .w-dropdown-toggle.is-open .arrow-image {
1944      transform: rotate(180deg);
1945    }
1946  }
1947</style>
1948
1949<!-- Desktop-only JS that adds has-open-nav-dropdown + is-open (DISABLED on tablet/mobile) -->
1950<script>
1951(() => {
1952  // Disable this behavior on tablet/mobile
1953  if (!window.matchMedia('(min-width: 992px)').matches) return;
1954
1955  const navbarRoot = document.querySelector('.main_navbar-component');
1956  const desktopMenu = navbarRoot?.querySelector('.mega-menu-wrapper.is-desktop');
1957  if (!navbarRoot || !desktopMenu) return;
1958
1959  // Only mega-menu dropdown toggles (ignore language dropdown etc.)
1960  const toggles = Array.from(desktopMenu.querySelectorAll('.w-dropdown-toggle'))
1961    .filter(t => t.querySelector('.nav-link'));
1962
1963  if (!toggles.length) return;
1964
1965  let raf = 0;
1966  const schedule = () => {
1967    if (raf) return;
1968    raf = requestAnimationFrame(() => {
1969      raf = 0;
1970      update();
1971    });
1972  };
1973
1974  const isOpen = (toggle) => toggle.getAttribute('aria-expanded') === 'true';
1975
1976  const update = () => {
1977    const anyOpen = toggles.some(isOpen);
1978    navbarRoot.classList.toggle('has-open-nav-dropdown', anyOpen);
1979    toggles.forEach(t => t.classList.toggle('is-open', isOpen(t)));
1980  };
1981
1982  // Observe open/close changes
1983  const obs = new MutationObserver(schedule);
1984  toggles.forEach(t => obs.observe(t, {
1985    attributes: true,
1986    attributeFilter: ['aria-expanded']
1987  }));
1988
1989  // Fallbacks for outside click / ESC close
1990  document.addEventListener('click', schedule, true);
1991  document.addEventListener('keydown', (e) => { if (e.key === 'Escape') schedule(); }, true);
1992
1993  update();
1994})();
1995</script>
1995
1996<style id="quilter-consent-v2-overrides">
1997/* Preserve current production fs-consent_* design. Add only v2 stacking,
1998   safe-area/viewport sizing, accessible close-button reset and reachable scroll. */
1999[fs-consent-element="root"],[fs-consent-element="internal-component"],:host{z-index:2147483100!important}
2000[fs-consent-version="2"]{font-family:Inter,Arial,sans-serif;color:#fff;font-size:16px;line-height:25.6px}
2001[fs-consent-version="2"].fs-consent_banner-2{z-index:2147483101!important;max-height:calc(100dvh - 2rem);overflow:auto}
2002[fs-consent-version="2"].fs-consent_prefs-2{z-index:2147483102!important}
2003[fs-consent-version="2"] .fs-consent_prefs_form-block{max-width:30rem;width:100%}
2004[fs-consent-version="2"] .fs-consent_prefs_form-2{max-height:80dvh;overflow:auto;overscroll-behavior:contain}
2005[fs-consent-version="2"] .fs-consent_prefs_close{border:0;align-items:center;justify-content:center;line-height:0}
2006[fs-consent-version="2"] .fs-consent_prefs_close-icon{height:1rem}
2007[fs-consent-version="2"] :is(a,button,input,[tabindex]):focus-visible{outline:2px solid #fff;outline-offset:3px}
2008[fs-consent-version="2"] .consent_gpc-honored{font-family:Inter,Arial,sans-serif;font-size:.75rem;line-height:1.45;color:#fff9;padding:0;border:0;background:transparent}
2009[fs-consent-version="2"] .consent_gpc-honored-icon{color:#fff}
2010[fs-consent-version="2"][hidden],[fs-consent-version="2"] [hidden]{display:none!important}
2011@media(max-width:479px){[fs-consent-version="2"] .fs-consent_prefs_wrapper-2{padding:1rem}[fs-consent-version="2"] .fs-consent_prefs_form-2{max-height:calc(100dvh - 2rem)}}
2012
2013</style>
2014<script id="quilter-consent-v2-ui">
2015/* Consent UI localization only. Does not write choices, cookies, categories, or GTM defaults. */
2016(function(){
2017'use strict';
2018if(window.__quilterConsentV2UI)return;window.__quilterConsentV2UI=true;
2019var maps={"de":{"Your Privacy":"Ihre Privatsphäre","Welcome to Quilter! We’re glad you’re here and want you to know that we respect your privacy and your right to control how we collect and use your personal data. Please read our":"Willkommen bei Quilter! Wir freuen uns, dass Sie hier sind. Wir respektieren Ihre Privatsphäre und Ihr Recht, darüber zu bestimmen, wie wir Ihre personenbezogenen Daten erheben und verwenden. Lesen Sie unsere","Privacy Policy":"Datenschutzrichtlinie","to learn about our privacy practices, or click":", um mehr über unseren Umgang mit Daten zu erfahren, oder klicken Sie auf","“Your preferences”":"„Ihre Einstellungen“","to exercise control over your data.":", um die Kontrolle über Ihre Daten auszuüben.","I understand":"Verstanden","Your preferences":"Ihre Einstellungen","Reject All":"Alle ablehnen","Manage Consent Preferences by Category":"Einwilligungseinstellungen nach Kategorie verwalten","Essentials":"Erforderlich","Necessary for the site to function. Always On.":"Für die Funktion der Website erforderlich. Immer aktiviert.","Marketing":"Marketing","Used for targeted advertising.":"Für gezielte Werbung verwendet.","Personalization":"Personalisierung","Remembers your preferences and provides enhanced features.":"Speichert Ihre Einstellungen und bietet erweiterte Funktionen.","Analytics":"Analyse","Measures usage and improves your experience.":"Misst die Nutzung und verbessert Ihr Nutzungserlebnis.","Accept All":"Alle akzeptieren","Thank you! Your submission has been received!":"Vielen Dank! Ihre Angaben wurden übermittelt!","Oops! Something went wrong while submitting the form.":"Beim Absenden des Formulars ist ein Fehler aufgetreten.","Preferences":"Einstellungen","Iframe is blocked. Accept cookies to load it.":"Der eingebettete Inhalt ist blockiert. Akzeptieren Sie Cookies, um ihn zu laden.","Always active":"Immer aktiv","Save Preferences":"Einstellungen speichern","Please wait...":"Bitte warten…","Close":"Schließen","Accept":"Akzeptieren","Reject":"Ablehnen","Manage Consent Preferences":"Einwilligungseinstellungen verwalten","By clicking":"Wenn Sie auf","\"Accept\"":"„Akzeptieren“",", you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our":" klicken, stimmen Sie der Speicherung von Cookies auf Ihrem Gerät zu, um die Navigation auf der Website zu verbessern, die Nutzung der Website zu analysieren und unsere Marketingaktivitäten zu unterstützen. Weitere Informationen finden Sie in unserer","for more information.":".","The GPC signal has been honored.":"Das GPC-Signal wurde berücksichtigt.","Name":"Name","Description":"Beschreibung","Type":"Typ","Retention:":"Speicherdauer:","Provider name":"Anbietername","Tracker Name":"Tracker-Name","Tracker description":"Tracker-Beschreibung","Tracker retention":"Tracker-Speicherdauer","Tracker type":"Tracker-Typ","No providers detected for this category.":"Für diese Kategorie wurden keine Anbieter erkannt.","No trackers detected for this category.":"Für diese Kategorie wurden keine Tracker erkannt.","Powered by":"Bereitgestellt von","Save preferences":"Einstellungen speichern","Close preferences":"Einstellungen schließen"},"ja":{"Your Privacy":"プライバシーについて","Welcome to Quilter! We’re glad you’re here and want you to know that we respect your privacy and your right to control how we collect and use your personal data. Please read our":"Quilterへようこそ。お越しいただきありがとうございます。お客様のプライバシーと、個人データの収集・利用方法をご自身で管理する権利を尊重します。当社の取り組みについては、","Privacy Policy":"プライバシーポリシー","to learn about our privacy practices, or click":"をご覧ください。データの取り扱いを管理するには、","“Your preferences”":"「設定」","to exercise control over your data.":"をクリックしてください。","I understand":"了解しました","Your preferences":"設定","Reject All":"すã
2019¹ã¦æ‹’否","Manage Consent Preferences by Category":"カテゴリ別の同意設定を管理","Essentials":"必須","Necessary for the site to function. Always On.":"サイトの動作に必要です。常に有効です。","Marketing":"マーケティング","Used for targeted advertising.":"ターゲティング広告に使用します。","Personalization":"パーソナライズ","Remembers your preferences and provides enhanced features.":"設定を記憶し、拡張機能を提供します。","Analytics":"分析","Measures usage and improves your experience.":"利用状況を測定し、使いやすさを改善します。","Accept All":"すべて許可","Thank you! Your submission has been received!":"ありがとうございます。送信を受け付けました。","Oops! Something went wrong while submitting the form.":"フォームの送信中にエラーが発生しました。","Preferences":"設定","Iframe is blocked. Accept cookies to load it.":"埋め込みコンテンツはブロックされています。Cookieを許可すると読み込まれます。","Always active":"常に有効","Save Preferences":"設定を保存","Please wait...":"お待ちください…","Close":"閉じる","Accept":"許可","Reject":"拒否","Manage Consent Preferences":"同意設定を管理","By clicking":"","\"Accept\"":"「許可」",", you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our":"をクリックすると、サイトの操作性の向上、利用状況の分析、マーケティング活動の支援を目的として、お使いの端末にCookieを保存することに同意したものとみなされます。詳しくは、","for more information.":"をご覧ください。","The GPC signal has been honored.":"GPCシグナルに基づくオプトアウト設定を適用しました。","Name":"名前","Description":"説明","Type":"種類","Retention:":"保存期間:","Provider name":"提供元名","Tracker Name":"トラッカー名","Tracker description":"トラッカーの説明","Tracker retention":"トラッカーの保存期間","Tracker type":"トラッカーの種類","No providers detected for this category.":"このカテゴリの提供元は検出されませんでした。","No trackers detected for this category.":"このカテゴリのトラッカーは検出されませんでした。","Powered by":"提供:","Save preferences":"設定を保存","Close preferences":"設定を閉じる"}},seen=new Map(),originals=new WeakMap();
2020var scope='[fs-consent-version="2"][fs-consent-instance],.consent_placeholder';
2021var hosts='[fs-consent-element="root"],[fs-consent-element="internal-component"]';
2022function lang(){return(document.documentElement.lang||'en').split('-')[0];}
2023function key(s){return s.replace(/\s+/g,' ').trim();}
2024function value(s){var map=maps[lang()],k=key(s);if(!map||!Object.prototype.hasOwnProperty.call(map,k))return s;if(lang()==='de'&&k==='for more information.')return '.';return s.replace(/^\s*[^]*?\s*$/,function(){return(s.match(/^\s*/)||[''])[0]+map[k]+(s.match(/\s*$/)||[''])[0];});}
2025function translate(el){
2026 // Preserve the existing Privacy destination within the current page locale.
2027 el.querySelectorAll('a.inline-link[href]').forEach(function(a){var href=a.getAttribute('href');if(/^\/(?:de\/|ja\/)?privacy$/.test(href)){var locale=lang(),next=(locale==='de'||locale==='ja'?'/'+locale:'')+'/privacy';if(href!==next)a.setAttribute('href',next);}});
2028 var w=document.createTreeWalker(el,NodeFilter.SHOW_TEXT),n;
2029 while((n=w.nextNode())){if(n.parentElement&&n.parentElement.closest('script,style,textarea,svg'))continue;
2030  var saved=originals.get(n),raw=saved&&n.nodeValue===saved.last?saved.source:n.nodeValue,out=value(raw);
2031  if(out!==n.nodeValue)n.nodeValue=out;originals.set(n,{source:raw,last:out});
2032 }
2033 el.querySelectorAll('input[type="submit"],[aria-label],[title],[data-wait]').forEach(function(e){
2034  ['aria-label','title','data-wait'].concat(e.matches('input[type="submit"]')?['value']:[]).forEach(function(a){if
2034(!e.hasAttribute(a))return;var raw=e.getAttribute(a),out=value(raw);if(out!==raw)e.setAttribute(a,out);});
2035 });
2036}
2037function apply(root){
2038 if(root.host){var src=document.getElementById('quilter-consent-v2-overrides');if(src&&!root.getElementById('quilter-consent-v2-overrides-shadow')){var style=document.createElement('style');style.id='quilter-consent-v2-overrides-shadow';style.textContent=src.textContent;root.appendChild(style);}}
2039 root.querySelectorAll(scope).forEach(translate);
2040}
2041function watch(root){if(seen.has(root))return;var pending=false,observer=new MutationObserver(function(){if(pending)return;pending=true;queueMicrotask(function(){observer.disconnect();apply(root);observe();pending=false;scan();});});function observe(){observer.observe(root,{subtree:true,childList:true,characterData:true,attributes:true,attributeFilter:['value','aria-label','title','data-wait']});}seen.set(root,observer);apply(root);observe();}
2042function scan(){watch(document);document.querySelectorAll(hosts).forEach(function(host){host.style.setProperty('z-index','2147483100','important');if(getComputedStyle(host).position==='static')host.style.setProperty('position','relative');if(host.shadowRoot)watch(host.shadowRoot);});}
2043scan();document.addEventListener('DOMContentLoaded',scan,{once:true});window.addEventListener('load',scan,{once:true});
2044new MutationObserver(function(){seen.forEach(function(observer,root){observer.disconnect();apply(root);observer.observe(root,{subtree:true,childList:true,characterData:true,attributes:true,attributeFilter:['value','aria-label','title','data-wait']});});}).observe(document.documentElement,{attributes:true,attributeFilter:['lang']});
2045var ticks=0,timer=setInterval(function(){scan();if(++ticks>=120)clearInterval(timer);},500);
2046})();
2047
2048</script>
vendor: 1 bytes, line 2048
2048
2049<script id="newsletter-search-locale-20260925-agent-c">
2050/* Localize popup newsletter labels and glossary search; preserve form handlers and URLs. */
2051(function(){
2052'use strict';
2053var lang=(document.documentElement.lang||'').split('-')[0];if(lang!=='de'&&lang!=='ja')return;
2054var maps={de:{'By clicking "Subscribe" you agree to our':'Wenn Sie auf „Abonnieren“ klicken, stimmen Sie unseren','TOS':'Nutzungsbedingungen','and':'und unserer','Privacy Policy':'Datenschutzerklärung','.':' zu.','Your email address':'Ihre E-Mail-Adresse','Email':'E-Mail','Email*':'E-Mail*','Subscribe':'Abonnieren','You’re subscribed.':'Sie sind angemeldet.','Thanks — the next issue will land in your inbox.':'Vielen Dank — die nächste Ausgabe erhalten Sie in Ihrem Posteingang.','Please complete this required field.':'Bitte füllen Sie dieses Pflichtfeld aus.','Please enter a valid email address.':'Bitte geben Sie eine gültige E-Mail-Adresse ein.',"Yes, I'd like to receive marketing communications from Quilter about products, services, and events by email. I can unsubscribe at any time. See our":'Ja, ich möchte per E-Mail Marketingmitteilungen von Quilter über Produkte, Dienstleistungen und Veranstaltungen erhalten. Ich kann mich jederzeit abmelden. Weitere Informationen finden Sie in unserer',"I agree to allow Quilter to store and process my personal data.":'Ich stimme zu, dass Quilter meine personenbezogenen Daten speichern und verarbeiten darf.','Please wait...':'Bitte warten…'},ja:{'By clicking "Subscribe" you agree to our':'「登録」をクリックすると、','TOS':'利用規約','and':'および','Privacy Policy':'プライバシーポリシー','.':'に同意したものとみなされます。','Your email address':'メールアドレス','Email':'メールアドレス','Email*':'メールアドレス*','Subscribe':'登録','You’re subscribed.':'登録が完了しました。','Thanks — the next issue will land in your inbox.':'ありがとうございます。次号をメールでお届けします。','Please complete this required field.':'この
2054必須項目を入力してください。','Please enter a valid email address.':'有効なメールアドレスを入力してください。',"Yes, I'd like to receive marketing communications from Quilter about products, services, and events by email. I can unsubscribe at any time. See our":'Quilterの製品、サービス、イベントに関するマーケティング情報をメールで受け取ることに同意します。いつでも配信を停止できます。詳しくは',"I agree to allow Quilter to store and process my personal data.":'Quilterが私の個人データを保存し、処理することに同意します。','Please wait...':'お待ちください…'}},map=maps[lang],pending=false,observer;
2055function translate(v){var k=v.trim();return Object.prototype.hasOwnProperty.call(map,k)?v.replace(k,map[k]):v;}
2056function run(){observer.disconnect();document.querySelectorAll('#qtr-hs-newsletter-popup,#qtr-hs-newsletter-popup-consent').forEach(function(root){var w=document.createTreeWalker(root,NodeFilter.SHOW_TEXT),n;while((n=w.nextNode())){if(n.parentElement&&n.parentElement.closest('script,style,textarea'))continue;var t=n.nodeValue.trim()==='.'&&root.id==='qtr-hs-newsletter-popup'?n.nodeValue.replace('.',lang==='de'?'.':'をご覧ください。'):translate(n.nodeValue);if(t!==n.nodeValue)n.nodeValue=t;}root.querySelectorAll('input,[aria-label],[title]').forEach(function(e){['placeholder','aria-label','title','data-wait'].concat(e.type==='submit'?['value']:[]).forEach(function(a){if(e.hasAttribute(a)){var old=e.getAttribute(a),v=translate(old);if(old!==v)e.setAttribute(a,v);}});});});
2057if(/^\/(de|ja)\/glossary(?:\/|$)/.test(location.pathname)){document.querySelectorAll('input[placeholder="Search here..."]').forEach(function(e){e.placeholder=lang==='de'?'Hier suchen…':'用語を検索…';});}
2058observer.observe(document.documentElement,{subtree:true,childList:true,characterData:true,attributes:true,attributeFilter:['placeholder','value','aria-label','title','data-wait']});}
2059observer=new MutationObserver(function(){if(pending)return;pending=true;queueMicrotask(function(){pending=false;run();});});run();document.addEventListener('DOMContentLoaded',run,{once:true});
2060})();
2061
2062</script>
2062
2063
2064<script id="glossary-template-fallback-20260925-agent-c">
2065/* Fallback for glossary detail template labels, scoped to DE/JA detail pages. */
2066(function(){'use strict';var lang=(document.documentElement.lang||'').split('-')[0];if(!/^(de|ja)$/.test(lang)||!/^\/(de|ja)\/glossary\/[^/]+\/?$/.test(location.pathname))return;var labels={"de": [{"selector": "a.text-rg-16.text-696969.hover-underline", "en": "Glossary", "text": "Glossar"}, {"selector": "h2.text-50", "en": "Relevant resources", "text": "Relevante Ressourcen"}, {"selector": "h2.text-50", "en": "Other glossary terms", "text": "Weitere Glossarbegriffe"}, {"selector": "div", "en": "Thank you! Your submission has been received!", "text": "Vielen Dank! Ihre Nachricht wurde übermittelt."}, {"selector": "div", "en": "Oops! Something went wrong while submitting the form.", "text": "Beim Senden des Formulars ist ein Fehler aufgetreten."}, {"selector": "div", "en": "There are no available glossary items matching the current filters.", "text": "Keine Glossareinträge entsprechen den aktuellen Filtern."}, {"selector": "a.filter_clear-all.helper", "en": "Reset", "text": "Zurücksetzen"}, {"selector": "p.text-22", "en": "Other Resources", "text": "Weitere Ressourcen"}, {"selector": "a.text-16.text-link", "en": "Hardware-Rich Development", "text": "Hardware-Rich Development"}, {"selector": "a.text-16.text-link", "en": "Workbench", "text": "Workbench"}, {"selector": "a.text-16.text-link", "en": "Blog", "text": "Blog"}, {"selector": "a.text-16.text-link", "en": "Resources", "text": "Ressourcen"}, {"selector": "div", "en": "No items found.", "text": "Keine Einträge gefunden."}], "ja": [{"selector": "a.text-rg-16.text-696969.hover-underline", "en": "Glossary", "text": "用語集"}, {"selector": "h2.text-50", "en": "Relevant resources", "text": "関連資料"}, {"selector": "h2.text-50", "en": "Other glossary terms", "text": "その他の用語"}, {"selector": "div", "en": "Thank you! Your submission has been received!", "text": "ありがとうございます。送信を受け付けました。"}, {"selector": "div", "en": "Oops! Something went wrong while submitting the form.", "text": "フォームの送信中にエラーが発生しました。"}, {"selector": "div", "en": "There are no available glossary items matching the current filters.", "text": "現在の絞り込み条件に一致する用語はありません。"}, {"selector": "a.filter_clear-all.helper", "en": "Reset", "text": "リセット"}, {"selector": "p.text-22", "en": "Other Resources", "text": "その他の資料"}, {"selector": "a.text-16.text-link", "en": "Hardware-Rich Development", "text": "Hardware-Rich Development"}, {"selector": "a.text-16.text-link", "en": "Workbench", "text": "Workbench"}, {"selector": "a.text-16.text-link", "en": "Blog", "text": "ブログ"}, {"selector": "a.text-16.text-link", "en": "Resources", "text": "資料"}, {"selector": "div", "en": "No items found.", "text": "項目が見つかりません。"}]}[lang],pending=false,observer;
2067function run(){observer.disconnect();labels.forEach(function(rule){document.querySelectorAll(rule.selector).forEach(function(el){if(el.closest('.w-richtext,script,style')||el.textContent.trim()!==rule.en)return;var walker=document.createTreeWalker(el,NodeFilter.SHOW_TEXT),nodes=[],n;while((n=walker.nextNode()))if(n.nodeValue.trim())nodes.push(n);if(nodes.length===1)nodes[0].nodeValue=nodes[0].nodeValue.replace(rule.en,rule.text);});});observer.observe(document.documentElement,{subtree:true,childList:true,characterData:true});}
2068observer=new MutationObserver(function(){if(pending)return;pending=true;queueMicrotask(function(){pending=false;run();});});run();document.addEventListener('DOMContentLoaded',run,{once:true});})();
2069
2070</script>
2070
2071
2072<!-- Swiper JS -->
2073  
2073<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
2073
2074
2075	  <!-- Vertical Slider -->
2076  <!-- Initialize Swiper -->
2077  
2077<script>
2078    var swiper = new Swiper(".solutions_slider", {
2079    	 direction: "vertical",
2080       loop: true,
2081        loopedSlides: 3, 
2082    	 navigation: {
2083        nextEl: ".solutions_slider-next",
2084        prevEl: ".solutions_slider-prev",
2085      },
2086      pagination: {
2087        el: ".swiper-pagination",
2088        clickable: true,
2089      },
2090      autoplay: {
2091      delay: 4000,
2092      disableOnInteraction: false,
2093      },
2094    });
2095  </script>
2095
2096  
2097  
2098  
2099
2100  <!-- Back to top -->
2101  
2101<script>
2102        document.addEventListener('DOMContentLoaded', () => {
2103            const backToTopBtn = document.querySelector('.back-to-top-btn');
2104
2105            if (backToTopBtn) {
2106                backToTopBtn.addEventListener('click', () => {
2107                    window.scrollTo({
2108                        top: 0,
2109                        behavior: 'smooth'
2110                    });
2111                });
2112            }
2113        });
2114    </script>
2114
2115    
2116
2117<style>
2118/* 1.  TOP / BOTTOM GRADIENTS – only visible while the section itself
2119      is at least 15 % inside the viewport                                */
2120.tab-fade-top,
2121.tab-fade-bottom{
2122  opacity:0;
2123  pointer-events:none;          /* prevents accidental hovering when hidden */
2124  transition:opacity .35s ease;
2125}
2126.section-default.in-view .tab-fade-top,
2127.section-default.in-view .tab-fade-bottom{
2128  opacity:1;
2129  pointer-events:auto;
2130}
2131
2132/* 2.  TAB DESCRIPTIONS – collapsed by default, expand smoothly
2133      when the parent link gets .is-active                                */
2134.tab-description{
2135  overflow:hidden;
2136  max-height:0;
2137  opacity:0;
2138  transition:max-height .45s ease, opacity .35s ease;
2139}
2140.tab-menu-item.is-active .tab-description{
2141  max-height:400px;   /* just needs to be higher than the real text height */
2142  opacity:1;
2143}
2144</style>
2145
2146<script>
2147document.addEventListener('DOMContentLoaded', () => {
2148
2149  /* --------------------------- 1.  SECTION FADES --------------------------- */
2150  const featureSection = document.querySelector('.section-default');
2151  if (featureSection){
2152    const sectionObserver = new IntersectionObserver(entries=>{
2153      entries.forEach(entry=>{
2154        featureSection.classList.toggle('in-view', entry.isIntersecting);
2155      });
2156    },{threshold:0.15});
2157    sectionObserver.observe(featureSection);
2158  }
2159
2160  /* --------------------------- 2.  TAB HANDLING ---------------------------- */
2161  const tabLinks   = Array.from(document.querySelectorAll('.tab-menu-item'));
2162  const tabContent = Array.from(document.querySelectorAll('.tab-content-item'));
2163
2164  /* helper that gives / removes the “is-active” class */
2165  const activateTab = linkToActivate => {
2166    tabLinks.forEach(link=>{
2167      link.classList.toggle('is-active', link === linkToActivate);
2168    });
2169  };
2170
2171  /* click = manual activation */
2172  tabLinks.forEach(link=>{
2173    link.addEventListener('click', () => activateTab(link));
2174  });
2175
2176  /* mark first tab active on load (fallback) */
2177  if (tabLinks.length) activateTab(tabLinks[0]);
2178
2179  /* --------------------------- 3.  SCROLL SYNC ---------------------------- */
2180  /* Whenever 50 % of a .tab-content-item is in the viewport,
2181     its partner link becomes active.                                        */
2182  const contentObserver = new IntersectionObserver(entries=>{
2183    entries.forEach(entry=>{
2184      if (entry.isIntersecting && entry.intersectionRatio >= 0.5){
2185        const id   = entry.target.id;                       // 1 … 5
2186        const link = document.querySelector(`.tab-menu-item[href="#${id}"]`);
2187        if (link) activateTab(link);
2188      }
2189    });
2190  },{threshold:0.5});
2191
2192  tabContent.forEach(item => contentObserver.observe(item));
2193});
2194</script>
2194
2195
2196
2197<!-- Vimeo Player API -->
2198<script src="https://player.vimeo.com/api/player.js" defer="" type="fs-consent" fs-consent-categories="personalization"></script>
2198
2199
2200<!-- ============ Auto-router lineage strip: plot-in ============
2201     The four plates draw themselves left to right when the strip reaches the
2202     viewport, like a plotter working across the timeline.
2203
2204     The starting state is hidden, applied here in script rather than in CSS,
2205     so a page where this file never loads simply shows the finished artwork.
2206
2207     Paths carrying their own stroke-dasharray are ratsnest lines and are meant
2208     to stay dashed. Those fade in instead of drawing, since setting a dasharray
2209     for the draw would turn them solid permanently. -->
2210<script>
2211(function () {
2212  var strip = document.querySelector('.aur-strip');
2213  if (!strip) return;
2214  if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
2215
2216  var cells = Array.prototype.slice.call(strip.querySelectorAll('.aur-cell'));
2217  if (!cells.length) return;
2218
2219  function alreadyDashed(el) {
2220    var n = el;
2221    while (n && n.nodeName !== 'svg') {
2222      if (n.getAttribute && n.getAttribute('stroke-dasharray')) return true;
2223      n = n.parentNode;
2224    }
2225    return false;
2226  }
2227
2228  var sets = cells.map(function (cell) {
2229    var svg = cell.querySelector('svg');
2230    if (!svg) return null;
2231    var draw = [], fade = [];
2232    Array.prototype.forEach.call(svg.querySelectorAll('path'), function (p) {
2233      if (alreadyDashed(p)) { fade.push(p); return; }
2234      var len;
2235      try { len = p.getTotalLength(); } catch (e) { len = 0; }
2236      if (!len || !isFinite(len)) { fade.push(p); return; }
2237      p.style.strokeDasharray = len + ' ' + len;
2238      p.style.strokeDashoffset = len;
2239      draw.push(p);
2240    });
2241    Array.prototype.forEach.call(svg.querySelectorAll('circle, rect'), function (d) { fade.push(d); });
2242    fade.forEach(function (el) {
2243      el.setAttribute('data-o', el.getAttribute('opacity') || '1');
2244      el.style.opacity = '0';
2245    });
2246    return { draw: draw, fade: fade };
2247  });
2248
2249  var played = false;
2250  function play() {
2251    if (played) return;
2252    played = true;
2253    teardown();
2254    sets.forEach(function (set, ci) {
2255      if (!set) return;
2256      var base = ci * 300;
2257      set.draw.forEach(function (p, i) {
2258        p.style.transition = 'stroke-dashoffset 460ms cubic-bezier(.45,0,.25,1) ' + (base + i * 18) + 'ms';
2259        p.style.strokeDashoffset = '0';
2260      });
2261      set.fade.forEach(function (el, i) {
2262        el.style.transition = 'opacity 300ms ease ' + (base + 200 + i * 5) + 'ms';
2263        el.style.opacity = el.getAttribute('data-o');
2264      });
2265    });
2266  }
2267
2268  function inView() {
2269    var r = strip.getBoundingClientRect();
2270    return r.top < (window.innerHeight || 0) * 0.9 && r.bottom > 0;
2271  }
2272
2273  var io = null, ticking = false;
2274  function onScroll() {
2275    if (ticking) return;
2276    ticking = true;
2277    requestAnimationFrame(function () { ticking = false; if (inView()) play(); });
2278  }
2279  function teardown() {
2280    if (io) { io.disconnect(); io = null; }
2281    window.removeEventListener('scroll', onScroll);
2282    window.removeEventListener('resize', onScroll);
2283  }
2284
2285  /* Three independent triggers. The artwork starts hidden, so the one outcome
2286     that must never happen is all of them failing and leaving it invisible.
2287       1. IntersectionObserver, the normal path.
2288       2. A throttled scroll listener, because IO silently never fires in some
2289          embedded webviews and automation contexts. That is not theoretical:
2290          it is how this fallback came to be written.
2291       3. A hard backstop timer, so the section is visible within eight seconds
2292          no matter what. */
2293  if ('IntersectionObserver' in window) {
2294    io = new IntersectionObserver(function (entries) {
2295      for (var i = 0; i < entries.length; i++) {
2296        if (entries[i].isIntersecting) { play(); return; }
2297      }
2298    }, { threshold: 0.25 });
2299    io.observe(strip);
2300  }
2301  window.addEventListener('scroll', onScroll, { passive: true });
2302  window.addEventListener('resize', onScroll, { passive: true });
2303  if (inView()) requestAnimationFrame(play);
2304  setTimeout(play, 8000);
2305})();
2306</script>
2306
2307
2308<!-- Quilter Home DE/JA embed localization -->
2309<script>
2310(function () {
2311  'use strict';
2312  var lang = (document.documentElement.lang || '').slice(0, 2).toLowerCase();
2313  if ((lang !== 'ja' && lang !== 'de') || !/^\/(?:ja|de)\/?$/.test(location.pathname)) return;
2314  var MAPS = {"de": {"Before:": "Vorher:", "Manual Layout": "Manuelles Layout", "Mon": "Mo", "Tue": "Di", "Wed": "Mi", "Thu": "Do", "Fri": "Fr", "Sat": "Sa", "Sun": "So", "Start Working on Layout": "Layoutarbeit beginnen", "Layout in Progress": "Layout in Bearbeitung", "Engineer Reviews Draft and Requests Changes": "Ingenieur prüft Entwurf und fordert Änderungen an", "Engineer Reviews Final Layout": "Ingenieur prüft finales Layout", "Submit to Fab": "Zur Fertigung einreichen", "Fabrication and Assembly": "Fertigung und Bestückung", "Board Arrives": "Leiterplatte trifft ein", "After:": "Nachher:", "Layout with Quilter": "Layout mit Quilter", "Submit to Quilter": "Bei Quilter einreichen", "Quilter Generates 100s of Candidates": "Quilter erzeugt Hunderte Kandidaten", "Engineer Reviews Candidates and Makes Adjustments": "Ingenieur prüft Kandidaten und passt sie an", "Learn more": "Mehr erfahren", "about Project Speedrun": "über Project Speedrun", "How": "So", "Quilter Works": "funktioniert Quilter", "Prepare Your Design Files": "Designdateien vorbereiten", "Schematic": "Schaltplan", "Board Outline": "Leiterplattenkontur", "Fixed": "Fixierte", "Components": "Bauteile", "Edit & Clean Up": "Bearbeiten und bereinigen", "Design Review": "Designprüfung", "Iteration Loop": "Iterationsschleife", "Define Design Context": "Designkontext festlegen", "Stackup": "Lagenaufbau", "Constraints": "Randbedingungen", "Circuit Intent": "Schaltungsabsicht", "Review Candidates": "Kandidaten prüfen", "Placement": "Platzierung", "Routing": "Routing", "Quilter Engine": "Quilter-Engine", "Explore How Quilter Works": "Erfahren Sie, wie Quilter funktioniert", "Tweak Placement": "Platzierung anpassen", "Final Cleanup": "Abschließende Bereinigung", "Review Placement": "Platzierung prüfen", "Review Routing": "Routing prüfen", "Dimension": "Kriterium", "Current Capabilities": "Aktuelle Fähigkeiten", "Status": "Status", "100 to 1,000 per board": "100 bis 1,000 pro Leiterplatte", "Live": "Verfügbar", "Pins to route": "Zu routende Pins", "No inherent limit, but the current best performance is around 2000-5000": "Keine grundsätzliche Grenze; die derzeit beste Leistung liegt bei etwa 2000–5000", "Pin density": "Pindichte", "Under 20%": "Unter 20%", "Pin density (%) = (Component Pin Area) / (Total Board Surface Area) × 100%": "Pindichte (%) = (Fläche der Bauteilpins) / (Gesamte Leiterplattenoberfläche) × 100%", "Via types": "Via-Typen", "Through-hole vias": "Durchkontaktierungen", "Blind & buried vias": "Blind- und Buried-Vias", "In development": "In Entwicklung", "BGA fanouts": "BGA-Fanouts", "Automated fanout generation": "Automatische Fanout-Erzeugung", "Beta": "Beta", "Length matching": "Längenabgleich", "Coming soon": "Demnächst", "RF": "HF", "Pre-route RF nets, Quilter can handle the rest": "HF-Netze vorab routen; Quilter übernimmt den Rest", "Previous": "Zurück", "Next": "Weiter", "Replay animation": "Animation erneut abspielen", "Upload Files": "Dateien hochladen", "Upload files": "Dateien hochladen", "Choose your stackup": "Lagenaufbau wählen", "Fabricator Constraints": "Fertigungsvorgaben", "Choose your fabricator constraints": "Fertigungsvorgaben wählen", "Floorplan": "Grobplatzierung", "Circuit Comprehension": "Schaltungsverständnis", "Tell us about your design": "Beschreiben Sie Ihren Entwurf", "Manage your geometric constraints": "Geometrische Randbedingungen verwalten", "Review and Submit": "Prüfen und einreichen", "SCALE": "MASSSTAB", "Drag & drop files to upload": "Dateien zum Hochladen hierher ziehen", "Using EasyEDA?": "Nutzen Sie EasyEDA?", "Browse Files": "Dateien auswählen", "Issues found": "Gefundene Probleme", "Parsing": "Einlesen", "File name": "Dateiname", "Type": "Typ", "ECAD Tool": "ECAD-Werkzeug", "Parsed": "Eingelesen", "Project": "Projekt", "Board": "Leiterplatte", "Detail View": "Detailansicht", "Board Dimensions": "Leiterplattenabmessungen", "Components to Place": "Zu platzierende Bauteile", "Component Density": "Bauteildichte", "Pins": "Pins", "Pins to Route": "Zu routende Pins", "Pin Density": "Pindichte", "Select a stackup": "Lagenaufbau auswählen", "From your uploaded files": "Aus Ihren hochgeladenen Dateien", "Standard 2-layer": "Standard, 2 Lagen", "Standard 4-layer": "Standard, 4 Lagen", "Standard 6-layer": "Standard, 6 Lagen", "Preserve copper on internal layers": "Kupfer auf Inne
2314nlagen beibehalten", "more info here ↗": "Weitere Informationen ↗", "Name": "Name", "Material": "Material", "Cu Layer Class": "Kupferlagenklasse", "Cu Weight Oz": "Kupfergewicht (oz)", "Thickness Microns": "Dicke (µm)", "Dielectric Constant": "Dielektrizitätskonstante", "Color": "Farbe", "Cu Orientation": "Kupferorientierung", "Top Overlay": "Bestückungsdruck oben", "Top Solder": "Lötstoppmaske oben", "Top Layer": "Oberste Lage", "Bottom Layer": "Unterste Lage", "Bottom Solder": "Lötstoppmaske unten", "Bottom Overlay": "Bestückungsdruck unten", "silkscreen": "Bestückungsdruck", "solder_mask": "Lötstoppmaske", "copper": "Kupfer", "Signal": "Signal", "Ground": "Masse", "TOP": "OBEN", "BOTTOM": "UNTEN", "prepreg": "Prepreg", "Design rules": "Designregeln", "These values are from your uploaded files": "Diese Werte stammen aus Ihren hochgeladenen Dateien", "Trace width (min)": "Leiterbahnbreite (min.)", "Trace clearance (min)": "Leiterbahnabstand (min.)", "Via diameter (min)": "Via-Durchmesser (min.)", "Via hole diameter (min)": "Via-Bohrdurchmesser (min.)", "Board margin": "Leiterplattenrandabstand", "Value (": "Wert (", "Value (mm)": "Wert (mm)", "Placement Options": "Platzierungsoptionen", "Component Clearance (min)": "Bauteilabstand (min.)", "Sides": "Seiten", "Prefer single-sided layouts": "Einseitige Bestückung bevorzugen", "Placement Info": "Platzierungsinformationen", "Highlight the preplaced components that Quilter won't move": "Vorplatzierte Bauteile markieren, die Quilter nicht verschiebt", "Components within the board boundary will stay exactly where they are shown.": "Bauteile innerhalb der Leiterplattenkontur bleiben genau an den gezeigten Positionen.", "Components not on the board will be placed by Quilter.": "Bauteile außerhalb der Leiterplatte werden von Quilter platziert.", "Placement regions and rooms appear as dashed lines.": "Platzierungsbereiche und Räume werden als gestrichelte Linien dargestellt.", "Differential Pairs": "Differenzpaare", "Single-ended Impedance Signals": "Impedanzkontrollierte Single-Ended-Signale", "Power Nets": "Versorgungsnetze", "Ground Nets": "Massenetze", "Switching Converters": "Schaltwandler", "Bypass Capacitors": "Abblockkondensatoren", "Crystal Oscillators": "Quarzoszillatoren", "BGA Components": "BGA-Bauteile", "Net Name (+)": "Netzname (+)", "Net Name (-)": "Netzname (-)", "Net Name": "Netzname", "Differential Impedance (Ω)": "Differenzielle Impedanz (Ω)", "Single-ended Impedance (Ω)": "Single-Ended-Impedanz (Ω)", "Impedance (Ω)": "Impedanz (Ω)", "Frequency (GHz)": "Frequenz (GHz)", "Actions": "Aktionen", "Pairs will be:": "Paare werden:", "Routed with the same length": "Mit gleicher Länge geroutet", "Routed with the same spacing": "Mit gleichem Abstand geroutet", "Routed with the same impedance": "Mit gleicher Impedanz geroutet", "All impedance calculations are performed at 1GHz.": "Alle Impedanzberechnungen erfolgen bei 1GHz.", "Remove all entries": "Alle Einträge entfernen", "Download CSV": "CSV herunterladen", "Add Row": "Zeile hinzufügen", "Add Multiple": "Mehrere hinzufügen", "Add By Netclass": "Nach Netzklasse hinzufügen", "Import": "Importieren", "Docs": "Dokumentation", "Group": "Gruppe", "Pair": "Paar", "Layer Index": "Lagenindex", "Layer Name": "Lagenname", "Layer Type": "Lagentyp", "Trace Width (mil)": "Leiterbahnbreite (mil)", "Trace Gap (mil)": "Leiterbahnabstand (mil)", "Differential Im...": "Differenzielle Im...", "copper-signal": "Kupfer-Signallage", "copper-ground": "Kupfer-Masselage", "Preserved Pours": "Beibehaltene Kupferflächen", "Net Widths by Layer": "Netzbreiten je Lage", "Placement Regions": "Platzierungsbereiche", "Custom Component Proximity": "Benutzerdefinierte Bauteilnähe", "Pour": "Kupferfläche", "1. Review computed constraints": "1. Berechnete Vorgaben prüfen", "2. Define your own constraints": "2. Eigene Vorgaben festlegen", "3. ECAD parsed constraints": "3. Aus ECAD eingelesene Vorgaben", "Components (24 to place)": "Bauteile (24 zu platzieren)", "Pins (121 to route)": "Pins (121 zu routen)", "no results yet": "Noch keine Ergebnisse", "Job Details": "Auftragsdetails", "We're working on layout candidates for your design": "Wir erstellen Layoutkandidaten für Ihren Entwurf", "Kick back, relax, and we'll email you as soon as your designs are ready.": "Lehnen Sie sich zurück. Wir benachrichtigen Sie per E-Mail, sobald Ihre Entwürfe fertig sind.", "0/1 steps completed": "0/1 Schritte abgeschlossen", "1/1 steps completed": "1/1 Schritte abgeschlossen", "4 candidates": "4 Kandidaten", "Display": "Anzeige", "Reset": "Zurücksetzen", "Quick Find": "Schnellsuche", "Layers": "Lagen", "Candidates (6 / 6)": "Kandidaten (6 / 6)", "Key Signals": "Wichtige Signale", "Component Placement": "Bauteilplatzierung", "Design Rule Checks": "Designregelprüfung", "Incomplete Net Routing": "Unvollständiges Netzrouting", "Placement Only": "Nur Platzierung", "Complete Board": "Vollständige Leiterplatte", "Prepare Your ECAD Files": "ECAD-Dateien vorbereiten", "Files Upload, Stackup, 
2314Constraints, and Floorplan": "Datei-Upload, Lagenaufbau, Vorgaben und Grobplatzierung", "Placement Candidates Selection": "Platzierungskandidaten auswählen", "Review and Tweak Placement in Your ECAD": "Platzierung im ECAD prüfen und anpassen", "Routed Candidates Review and Selection": "Geroutete Kandidaten prüfen und auswählen", "Final Review and Cleanup in Your ECAD": "Abschließende Prüfung und Bereinigung im ECAD", "Final Design Rules Check (DRC)": "Abschließende Designregelprüfung (DRC)", "Close video": "Video schließen", "Save Preferences": "Einstellungen speichern", "Please wait...": "Bitte warten…", "Download Input Files": "Eingabedateien herunterladen", "Circuit Comprehension JSON": "Schaltungsverständnis als JSON", "Input Files": "Eingabedateien", "Design Rules": "Designregeln", "ECAD Parsed Constraints": "Aus ECAD eingelesene Vorgaben", "No records specified": "Keine Einträge angegeben", "Single-ended Imp...": "Single-Ended-Imp...", "Trace": "Leiterbahn", "Via": "Via", "Substrate": "Substrat", "Pin": "Pin", "Component": "Bauteil", "Keepout": "Sperrfläche", "Placement Region": "Platzierungsbereich", "Quilter designs natively within your existing board, and parses files for component relationships and design constraints.": "Quilter arbeitet nativ in Ihrer vorhandenen Leiterplatte und liest Bauteilbeziehungen und Designvorgaben aus den Dateien.", "Tell us which stackup you want to use to generate candidates for your board.": "Geben Sie an, mit welchem Lagenaufbau Kandidaten für Ihre Leiterplatte erzeugt werden sollen.", "Tell us some of your manufacturer and fabrication preferences to prioritize during board compilation.": "Geben Sie Ihre Hersteller- und Fertigungspräferenzen an, die bei der Leiterplattenkompilierung priorisiert werden sollen.", "See how Quilter intends to place your components.": "Sehen Sie, wie Quilter Ihre Bauteile platzieren möchte.", "Review and modify the information that Quilter should know about when generating your board.": "Prüfen und bearbeiten Sie die Informationen, die Quilter bei der Erstellung Ihrer Leiterplatte berücksichtigen soll.", "Review constraints computed from circuit comprehension and define additional constraints.": "Prüfen Sie die aus dem Schaltungsverständnis berechneten Vorgaben und definieren Sie zusätzliche Randbedingungen.", "Quilter generates layout candidates and routes your board.": "Quilter erzeugt Layoutkandidaten und routet Ihre Leiterplatte.", "Existing pours will be deleted: Quilter will generate new pours as a part of the layout job.": "Bestehende Kupferflächen werden gelöscht: Quilter erzeugt im Rahmen des Layoutauftrags neue Kupferflächen.", "Off-board traces and vias will be deleted: Quilter will not modify existing traces or vias within the board boundary.": "Leiterbahnen und Vias außerhalb der Leiterplatte werden gelöscht. Bestehende Leiterbahnen und Vias innerhalb der Leiterplattenkontur verändert Quilter nicht.", "Quilter attempts computing impedance profiles using Simbeor, but in case of failures will instead use your design rule minimums. Please verify results manually.": "Quilter versucht, Impedanzprofile mit Simbeor zu berechnen. Schlägt dies fehl, verwendet es stattdessen die Mindestwerte Ihrer Designregeln. Bitte prüfen Sie die Ergebnisse manuell.", "You can change copper layer class here. If any other values are incorrect, please change them in the layer manager of your ECAD tool. Find out": "Hier können Sie die Kupferlagenklasse ändern. Falls andere Werte falsch sind, ändern Sie diese bitte im Lagenmanager Ihres ECAD-Werkzeugs.", "Differential pairs listed here will be routed as a pair with matched lengths and spacing.": "Die hier aufgeführten Differenzpaare werden paarweise mit abgestimmten Längen und Abständen geroutet.", "Note: Impedance control requires Quilter to use 4+ layer stackups in order to guarantee a good return path on an uninterrupted ground plane.": "Hinweis: Für die Impedanzkontrolle benötigt Quilter Lagenaufbauten mit 4 oder mehr Lagen, um einen guten Rückstrompfad auf einer durchgehenden Massefläche zu gewährleisten.", "Signals listed here will be routed with the specified impedance. All impedance calculations are performed at 1GHz.": "Die hier aufgeführten Signale werden mit der angegebenen Impedanz geroutet. Alle Impedanzberechnungen erfolgen bei 1GHz.", "Altium (.prjpcb, .pcbdoc, or .schdoc), IPC-2581 (.xml, .dsn, .qlt, or .brd), KiCAD (.kicad_pro, .pro, .kicad_pcb, or .kicad_sch), or Xpedition (.zip) files.": "Dateien aus Altium (.prjpcb, .pcbdoc oder .schdoc), IPC-2581 (.xml, .dsn, .qlt oder .brd), KiCAD (.kicad_pro, .pro, .kicad_pcb oder .kicad_sch) oder Xpedition (.zip).", "Quilter fits into your existing workflow. You prepare the design in your ECAD, upload it, and Quilter handles placement and routing. You review the output, make adjustments, and resubmit. Most boards go through 2 to 5 cycles before the engineer is satisfied with the result. There’s no magic: Quilter shows you every physics check it ran, and you stay in control at every step.": "Quilter fügt sich in Ihren bestehenden Workflow ein. Sie bereiten den Entwurf in Ihrem ECAD vor und laden ihn hoch. Quilter übernimmt Platzierung und Routing. Sie prüfen das Ergebnis, passen es an und reichen es erneut ein. Die meisten Leiterplatten durchlaufen 2 bis 5 Zyklen, bevor der Ingenieur mit dem Ergebnis zufrieden ist. Dahinter steckt keine Magie: Quilter zeigt jede durchgeführte physikalische Prüfung, und Sie behalten in jedem Schritt die Kontrolle.", "Design flow: ECAD design files feed into Quilter, which defines design context, generates candidates with the Quilter Engine, and returns them for review, edit and design review.": "Designablauf: ECAD-Dateien werden an Quilter übergeben. Quilter definiert den Designkontext, erzeugt Kandidaten mit der Quilter-Engine und gibt sie zur Prüfung, Bearbeitung und Designprüfung zurück.", "Design flow across eight stages. In your ECAD you prepare design files. In Quilter you define design context and the Quilter Engine generates candidates. You review placement, tweak it in your ECAD, then review routing, do a final cleanup and a design review. Each stage opens a short video.": "Designablauf in acht Schritten. Sie bereiten Designdateien im ECAD vor, definieren den Designkontext in Quilter und lassen die Quilter-Engine Kandidaten erzeugen. Sie prüfen die Platzierung, passen sie im ECAD an, prüfen das Routing und führen die abschließende Bereinigung und Designprüfung durch. Jeder Schritt öffnet ein kurzes Video."}, "ja": {"Before:": "導入前:", "Manual Layout": "手作業のレイアウト", "Mon": "月", "Tue": "火", "Wed": "æ°´", "Thu": "木", "Fri": "金", "Sat": "土", "Sun": "日", "Start Working on Layout": "レイアウト作業を開始", "Layout in Progress": "レイアウト作業中", "Engineer Reviews Draft and Requests Changes": "エンジニアが草案を確認し修正を依頼", "Engineer Reviews Final Layout": "エンジニアが最終レイアウトを確認", "Submit to Fab": "製造へ提出", "Fabrication and Assembly": "製造・実装", "Board Arrives": "基板が到着", "After:": "導入後:", "Layout with Quilter": "Quilterによるレイアウト", "Submit to Quilter": "Quilterへ提出", "Quilter Generates 100s of Candidates": "Quilterが数百の候補を生成", "Engineer Reviews Candidates and Makes Adjustments": "エンジニアが候補を確認・調整", "Learn more": "詳しく見る", "about Project Speedrun": "Project Speedrunについて", "How": "仕組み:", "Quilter Works": "Quilter", "Prepare Your Design Files": "設計ファイルを準備", "Schematic": "回路図", "Board Outline": "基板外形", "Fixed": "固定", "Components": "部品", "Edit & Clean Up": "編集・仕上げ", "Design Review": "設計レビュー", "Iteration Loop": "反復ループ", "Define Design Context": "設計コンテキストを定義", "Stackup": "層構成", "Constraints": "制約", "Circuit Intent": "回路の意図", "Review Candidates": "候補を確認", "Placement": "配置", "Routing": "配線", "Quilter Engine": "Quilterエンジン", "Explore How Quilter Works": "Quilterの仕組ã
2314¿ã‚’見る", "Tweak Placement": "配置を調整", "Final Cleanup": "最終仕上げ", "Review Placement": "配置を確認", "Review Routing": "配線を確認", "Dimension": "項目", "Current Capabilities": "現在の対応範囲", "Status": "状況", "100 to 1,000 per board": "基板あたり100〜1,000個", "Live": "提供中", "Pins to route": "配線するピン数", "No inherent limit, but the current best performance is around 2000-5000": "本質的な上限はありませんが、現時点で最も良好な性能が得られるのは約2000〜5000ピンです", "Pin density": "ピン密度", "Under 20%": "20%未満", "Pin density (%) = (Component Pin Area) / (Total Board Surface Area) × 100%": "ピン密度(%)=(部品ピンの面積)/(基板表面の総面積)× 100%", "Via types": "ビアの種類", "Through-hole vias": "貫通ビア", "Blind & buried vias": "ブラインドビア・埋め込みビア", "In development": "開発中", "BGA fanouts": "BGAファンアウト", "Automated fanout generation": "ファンアウトの自動生成", "Beta": "ベータ版", "Length matching": "等長配線", "Coming soon": "近日対応予定", "RF": "RF", "Pre-route RF nets, Quilter can handle the rest": "RFネットを事前配線すれば、残りはQuilterが処理できます", "Previous": "前へ", "Next": "次へ", "Replay animation": "アニメーションを再生", "Upload Files": "ファイルをアップロード", "Upload files": "ファイルをアップロード", "Choose your stackup": "層構成を選択", "Fabricator Constraints": "製造制約", "Choose your fabricator constraints": "製造制約を選択", "Floorplan": "フロアプラン", "Circuit Comprehension": "回路理解", "Tell us about your design": "設計について指定", "Manage your geometric constraints": "幾何学的制約を管理", "Review and Submit": "確認して送信", "SCALE": "縮尺", "Drag & drop files to upload": "ファイルをドラッグ&ドロップしてアップロード", "Using EasyEDA?": "EasyEDAをお使いですか?", "Browse Files": "ファイルを選択", "Issues found": "検出された問題", "Parsing": "解析", "File name": "ファイル名", "Type": "種類", "ECAD Tool": "ECADツール", "Parsed": "解析済み", "Project": "プロジェクト", "Board": "基板", "Detail View": "詳細表示", "Board Dimensions": "基板寸法", "Components to Place": "配置する部品数", "Component Density": "部品密度", "Pins": "ピン", "Pins to Route": "配線するピン数", "Pin Density": "ピン密度", "Select a stackup": "層構成を選択", "From your uploaded files": "アップロードしたファイルから", "Standard 2-layer": "標準2層", "Standard 4-layer": "標準4層", "Standard 6-layer": "標準6層", "Preserve copper on internal layers": "内層の銅箔を保持", "more info here ↗": "詳細はこちら ↗", "Name": "名前", "Material": "材料", "Cu Layer Class": "銅箔層の種類", "Cu Weight Oz": "銅箔重量(oz)", "Thickness Microns": "厚さ(µm)", "Dielectric Constant": "比誘電率", "Color": "色", "Cu Orientation": "銅箔の向き", "Top Overlay": "表面シルク", "Top Solder": "表面ソルダーレジスト", "Top Layer": "表面層", "Bottom Layer": "裏面層", "Bottom Solder": "裏面ソルダーレジスト", "Bottom Overlay": "裏面シルク", "silkscreen": "シルク", "solder_mask": "ソルダーレジスト", "copper": "銅箔", "Signal": "信号", "Ground": "グラウンド", "TOP": "表面", "BOTTOM": "裏面", "prepreg": "プリプレグ", "Design rules": "設計ルール", "These values are from your uploaded files": "これらの値はアップロードしたファイルから取得しています", "Trace width (min)": "最小配線幅", "Trace clearance (min)": "最小配線間隔", "Via diameter (min)": "最小ビア径", "Via hole diameter (min)": "最小ビア穴径", "Board margin": "基板端からの間隔", "Value (": "値 (", "Value (mm)": "値(mm)", "Placement Options": "配置オプション", "Component Clearance (min)": "最小部品間隔", "Sides": "実装面", "Prefer single-sided layouts": "片面実装を優先", "Placement Info": "配置情報", "Highlight the preplaced components that Quilter won't move": "Quilterが移動しない事前配置済み部å“
2314ã‚’強調表示", "Components within the board boundary will stay exactly where they are shown.": "基板外形内の部品は、表示されている位置にそのまま保持されます。", "Components not on the board will be placed by Quilter.": "基板外にある部品はQuilterが配置します。", "Placement regions and rooms appear as dashed lines.": "配置領域とルームは破線で表示されます。", "Differential Pairs": "差動ペア", "Single-ended Impedance Signals": "シングルエンドのインピーダンス制御信号", "Power Nets": "電源ネット", "Ground Nets": "グラウンドネット", "Switching Converters": "スイッチングコンバータ", "Bypass Capacitors": "バイパスコンデンサ", "Crystal Oscillators": "水晶発振器", "BGA Components": "BGA部品", "Net Name (+)": "ネット名(+)", "Net Name (-)": "ネット名(-)", "Net Name": "ネット名", "Differential Impedance (Ω)": "差動インピーダンス(Ω)", "Single-ended Impedance (Ω)": "シングルエンドインピーダンス(Ω)", "Impedance (Ω)": "インピーダンス(Ω)", "Frequency (GHz)": "周波数(GHz)", "Actions": "操作", "Pairs will be:": "ペアは次の条件で配線されます:", "Routed with the same length": "同じ長さで配線", "Routed with the same spacing": "同じ間隔で配線", "Routed with the same impedance": "同じインピーダンスで配線", "All impedance calculations are performed at 1GHz.": "すべてのインピーダンス計算は1GHzで行います。", "Remove all entries": "すべての項目を削除", "Download CSV": "CSVをダウンロード", "Add Row": "行を追加", "Add Multiple": "複数を追加", "Add By Netclass": "ネットクラスで追加", "Import": "インポート", "Docs": "ドキュメント", "Group": "グループ", "Pair": "ペア", "Layer Index": "層番号", "Layer Name": "層名", "Layer Type": "層の種類", "Trace Width (mil)": "配線幅(mil)", "Trace Gap (mil)": "配線間隔(mil)", "Differential Im...": "差動インピーダンス…", "copper-signal": "銅箔信号層", "copper-ground": "銅箔グラウンド層", "Preserved Pours": "保持する銅箔領域", "Net Widths by Layer": "層別ネット幅", "Placement Regions": "配置領域", "Custom Component Proximity": "部品間距離のカスタム指定", "Pour": "銅箔領域", "1. Review computed constraints": "1. 計算された制約を確認", "2. Define your own constraints": "2. 独自の制約を定義", "3. ECAD parsed constraints": "3. ECADから解析した制約", "Components (24 to place)": "部品(配置対象24個)", "Pins (121 to route)": "ピン(配線対象121本)", "no results yet": "結果はまだありません", "Job Details": "ジョブの詳細", "We're working on layout candidates for your design": "設計のレイアウト候補を作成しています", "Kick back, relax, and we'll email you as soon as your designs are ready.": "設計が完成したらメールでお知らせします。それまでお待ちください。", "0/1 steps completed": "0/1ステップ完了", "1/1 steps completed": "1/1ステップ完了", "4 candidates": "4候補", "Display": "表示", "Reset": "リセット", "Quick Find": "クイック検索", "Layers": "層", "Candidates (6 / 6)": "候補(6 / 6)", "Key Signals": "重要な信号", "Component Placement": "部品配置", "Design Rule Checks": "設計ルールチェック", "Incomplete Net Routing": "未完了のネット配線", "Placement Only": "配置のみ", "Complete Board": "基板全体", "Prepare Your ECAD Files": "ECADファイルを準備", "Files Upload, Stackup, Constraints, and Floorplan": "ファイルのアップロード、層構成、制約、フロアプラン", "Placement Candidates Selection": "配置候補の選択", "Review and Tweak Placement in Your ECAD": "ECADで配置を確認・調整", "Routed Candidates Review and Selection": "配線済み候補の確認と選択", "Final Review and Cleanup in Your ECAD": "ECADでの最終確認と仕上げ", "Final Design Rules Check (DRC)": "最終設計ルールチェック(DRC)", "Close video": "動画を閉じる", "Save Preferences": "設定を保存", "Please wait...": "お待ちください…", "Download Input Files": "入力ファイルをダウンロード", "Circuit Comprehension JSON": "回路理解のJSON", "Input Files": "入力ファイル", "Design Rules": "設計ルール", "ECAD Parsed Constraints": "ECADから解析した制約", "No records specified": "指定された項目はありません", "Single-ended Imp...": "シングルエンドインピーダンス…", "Trace": "配線", "Via": "ビア", "Substrate": "基材", "Pin": "ピン", "Component": "部品", "Keepout": "禁止領域", "Placement Region": "配置領域", "Quilter designs natively within your existing board, and parses files for component relationships and design constraints.": "Quilterは既存の基板ファイルをネイãƒ
2314†ã‚£ãƒ–に扱い、部品間の関係と設計制約を解析します。", "Tell us which stackup you want to use to generate candidates for your board.": "基板の候補生成に使用する層構成を指定します。", "Tell us some of your manufacturer and fabrication preferences to prioritize during board compilation.": "基板のコンパイル時に優先する製造業者や製造条件の希望を指定します。", "See how Quilter intends to place your components.": "Quilterが部品をどのように配置するか確認します。", "Review and modify the information that Quilter should know about when generating your board.": "基板生成時にQuilterが考慮する情報を確認・修正します。", "Review constraints computed from circuit comprehension and define additional constraints.": "回路理解に基づいて計算された制約を確認し、追加の制約を定義します。", "Quilter generates layout candidates and routes your board.": "Quilterがレイアウト候補を生成し、基板を配線します。", "Existing pours will be deleted: Quilter will generate new pours as a part of the layout job.": "既存の銅箔領域は削除されます。Quilterはレイアウトジョブの一環として新しい銅箔領域を生成します。", "Off-board traces and vias will be deleted: Quilter will not modify existing traces or vias within the board boundary.": "基板外の配線とビアは削除されます。Quilterは基板外形内にある既存の配線やビアを変更しません。", "Quilter attempts computing impedance profiles using Simbeor, but in case of failures will instead use your design rule minimums. Please verify results manually.": "QuilterはSimbeorを使ってインピーダンスプロファイルの計算を試みます。失敗した場合は設計ルールの最小値を使用します。結果を手動で確認してください。", "You can change copper layer class here. If any other values are incorrect, please change them in the layer manager of your ECAD tool. Find out": "ここでは銅箔層の種類を変更できます。その他の値に誤りがある場合は、ECADツールの層管理機能で修正してください。", "Differential pairs listed here will be routed as a pair with matched lengths and spacing.": "ここに示す差動ペアは、長さと間隔を揃えたペアとして配線されます。", "Note: Impedance control requires Quilter to use 4+ layer stackups in order to guarantee a good return path on an uninterrupted ground plane.": "注:インピーダンス制御では、連続したグラウンドプレーン上に良好なリターンパスを確保するため、Quilterは4層以上の層構成を使用する必要があります。", "Signals listed here will be routed with the specified impedance. All impedance calculations are performed at 1GHz.": "ここに示す信号は、指定されたインピーダンスで配線されます。すべてのインピーダンス計算は1GHzで行います。", "Altium (.prjpcb, .pcbdoc, or .schdoc), IPC-2581 (.xml, .dsn, .qlt, or .brd), KiCAD (.kicad_pro, .pro, .kicad_pcb, or .kicad_sch), or Xpedition (.zip) files.": "Altium(.prjpcb、.pcbdoc、.schdoc)、IPC-2581(.xml、.dsn、.qlt、.brd)、KiCAD(.kicad_pro、.pro、.kicad_pcb、.kicad_sch)、Xpedition(.zip)のファイル。", "Quilter fits into your existing workflow. You prepare the design in your ECAD, upload it, and Quilter handles placement and routing. You review the output, make adjustments, and resubmit. Most boards go through 2 to 5 cycles before the engineer is satisfied with the result. There’s no magic: Quilter shows you every physics check it ran, and you stay in control at every step.": "Quilterは既存のワークフローに組み込めます。ECADで設計を準備してアップロードすると、Quilterが部品配置と配線を行います。出力を確認して調整し、再度提出します。多くの基板は、エンジニアが結果に満足するまで2〜5回のサイクルを経ます。魔法でã
2314¯ã‚りません。Quilterは実行した物理チェックをすべて示し、どの段階でも主導権はお客様にあります。", "Design flow: ECAD design files feed into Quilter, which defines design context, generates candidates with the Quilter Engine, and returns them for review, edit and design review.": "設計フロー:ECAD設計ファイルをQuilterに渡すと、設計コンテキストを定義し、Quilterエンジンで候補を生成します。候補を確認・編集し、設計レビューを行います。", "Design flow across eight stages. In your ECAD you prepare design files. In Quilter you define design context and the Quilter Engine generates candidates. You review placement, tweak it in your ECAD, then review routing, do a final cleanup and a design review. Each stage opens a short video.": "8段階の設計フロー。ECADで設計ファイルを準備し、Quilterで設計コンテキストを定義すると、Quilterエンジンが候補を生成します。配置を確認してECADで調整し、配線を確認した後、最終仕上げと設計レビューを行います。各段階を選ぶと短い動画が開きます。"}};
2315  var T = MAPS[lang];
2316  var scope = '#quilter-flow, .qtr-wrap, .qf2, .qf2-modal, .qtbl-wrap, .fs-consent_prefs_form';
2317  function translate(s) {
2318    var k = s.replace(/\s+/g, ' ').trim();
2319    if (Object.prototype.hasOwnProperty.call(T, k)) return T[k];
2320    var m;
2321    if ((m = /^Candidate (\d+)$/.exec(k))) return lang === 'de' ? 'Kandidat ' + m[1] : '候補 ' + m[1];
2322    if ((m = /^(\d+) files specified$/.exec(k))) return lang === 'de' ? m[1] + ' Dateien angegeben' : m[1] + 'ファイル指定済み';
2323    if ((m = /^(\d+) records? specified(?: │ (\d+) constraints computed)?$/.exec(k))) return (lang === 'de' ? m[1] + ' Einträge angegeben' : m[1] + '項目指定済み') + (m[2] ? (lang === 'de' ? ' │ ' + m[2] + ' Vorgaben berechnet' : ' │ ' + m[2] + '制約を計算済み') : '');
2324    if ((m = /^(\d+) Info$/.exec(k))) return lang === 'de' ? m[1] + ' Hinweise' : m[1] + '件の情報';
2325    if ((m = /^(\d+) to review$/.exec(k))) return lang === 'de' ? m[1] + ' zu prüfen' : m[1] + '件を確認';
2326    if ((m = /^(\d+) computed$/.exec(k))) return lang === 'de' ? m[1] + ' berechnet' : m[1] + '件を計算済み';
2327    if ((m = /^Dielectric (\d+)$/.exec(k))) return lang === 'de' ? 'Dielektrikum ' + m[1] : '誘電体 ' + m[1];
2328    if ((m = /^Workflow (\d+) of (\d+)$/.exec(k))) return lang === 'de' ? 'Workflow ' + m[1] + ' von ' + m[2] : 'ワークフロー ' + m[1] + ' / ' + m[2];
2329    if ((m = /^Watch (.+?)( - \d+:\d+)?$/.exec(k))) return (lang === 'de' ? 'Ansehen: ' : '動画を見る:') + (T[m[1]] || m[1]) + (m[2] || '');
2330    return null;
2331  }
2332  function run(root) {
2333    var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, { acceptNode: function(n) {
2334      return n.parentElement && !n.parentElement.closest('script,style,noscript') ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
2335    }});
2336    var n, list=[]; while ((n=walker.nextNode())) list.push(n);
2337    list.forEach(function(n) {var v=translate(n.nodeValue);if(v!==null && v!==n.nodeValue.trim())n.nodeValue=n.nodeValue.replace(/\S[\s\S]*\S|\S/,v);});
2338    root.querySelectorAll('[aria-label],[title],input[type="submit"]').forEach(function(el) {
2339      ['aria-label','title','value','data-wait'].forEach(function(a) {if(!el.hasAttribute(a))return;var v=translate(el.getAttribute(a));if(v!==null && v!==el.getAttribute(a))el.setAttribute(a,v);});
2340    });
2341  }
2342  function setup() {
2343    document.querySelectorAll(scope).forEach(function(root) {
2344      if (root.dataset.homeLocaleReady) return;root.dataset.homeLocaleReady='1';
2345      var scheduled=false;
2346      var observer=new MutationObserver(function(){if(scheduled)return;scheduled=true;queueMicrotask(function(){scheduled=false;observer.disconnect();run(root);observe();});});
2347      function observe(){observer.observe(root,{childList:true,subtree:true,characterData:true,attributes:true,attributeFilter:['aria-label','title','value']});}
2348      run(root);observe();
2349    });
2350    // The consent submit control is not a text node in the localization API.
2351    document.querySelectorAll('.fs-consent_prefs_submit,input[value="Save Preferences"]').forEach(function(el){['value','data-wait'].forEach(function(a){var v=translate(el.getAttribute(a)||'');if(v!==null)el.setAttribute(a,v);});});
2352  }
2353  if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',setup,{once:true});else setup();
2354  window.addEventListener('load',setup,{once:true});
2355})();
2356
2357</script>
vendor: 1 bytes, line 2357
2357
2358<script src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6%2F689e5ba67671442434f3ca35%2F6a8449b904ba12b95a1ee93c%2Fanchorlanding-1.0.0.js" type="text/javascript"></script>
2358<script src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6%2F689e5ba67671442434f3ca35%2F6a8dec2cd89dfdf5dd1faeeb%2Fquilterhsconsentcopy-1.0.0.js" type="text/javascript"></script>
2358<script src="https://cdn.prod.website-files.com/68b7918b99fa38e5185dc4e6%2F689e5ba67671442434f3ca35%2F6ab8c5bb50cfd85b5579375e%2Fbluebandstatement-1.0.0.js" type="text/javascript"></script>
2358</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.