1<!doctype html> 2<html lang="en"> 3<head> 4<meta charset="utf-8"> 5<meta name="viewport" content="width=device-width,initial-scale=1"> 6<title>Found Surface â Custom knit manufacturing, Cleveland Ohio</title> 7<meta name="description" content="American knit manufacturing. Jacquard sweaters, beanies, scarves, blankets and pennants â designed in our Knitting Studio and knit to spec in Cleveland, Ohio. No overseas handoffs."> 8<meta property="og:title" content="Found Surface â Yarn in. Product out."> 9<meta property="og:description" content="Design it in the Knitting Studio. We knit it in Cleveland. Jacquard sweaters, beanies, scarves, blankets and pennants."> 10<meta property="og:type" content="website"> 11<link rel="icon" href="favicon.svg"> 12<link rel="apple-touch-icon" href="apple-touch-icon.png"> 13<link rel="preconnect" href="https://fonts.googleapis.com"> 14<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 15<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Yellowtail&display=swap" rel="stylesheet"> 16<link rel="stylesheet" href="css/site.css"> 17<link rel="stylesheet" href="css/studio.css">
18<script type="importmap">{ "imports": { "three": "./assets/studio/three.module.min.js" } }</script>
18 19<!-- Model cache-busting, filled in by pull-assets.sh: filename -> content hash. 20 assets/studio/* is served with a 7-day max-age, so a re-exported .glb that 21 keeps its name is held by the BROWSER for a week however hard the CDN is 22 invalidated â see studio.js modelV(). Empty here on purpose; the deploy 23 stamps it, and an empty map just means unversioned URLs. -->
24<script id="ks-asset-v">window.KS_ASSET_V={"beanie_head_fs.glb":"50a2aad0ad","blanket_fs.glb":"b89d9a9776","pennant_fs.glb":"b49ca3f09d","scarf_fs.glb":"9c935ab77b","scarf_long_fs.glb":"74e35da8e2","scarf_worn_fs.glb":"53f9b04b7f","skully_fs.glb":"90626b3f39","sweater_fs.glb":"8adb82579e"};</script>
24 25</head> 26<body> 27 28<!-- âââ Header âââââââââââââââââââââââââââââââââââââââââââââââââââââââââ --> 29<header class="bar" id="bar"> 30 <div class="wrap"> 31 <a class="lockup" href="#top" aria-label="Found Surface â home"> 32 <img src="brand/fs-wordmark.png" alt="Found Surface"><i>Made in USA</i></a> 33 <nav class="main" id="nav"> 34 <a href="studio/">Studio</a> 35 <a href="#factory">Factory</a> 36 <a href="#industries">Industries</a> 37 <a href="#talk">Contact</a> 38 <!-- The Account button in .bar-end is hidden below 760px, which left a 39 customer on a phone with no way into their account at all. It lives 40 in the burger menu there instead, and is hidden again once the 41 button is back on screen. El, 2026-09-03: mobile spacing, menu. --> 42 <a class="on-menu" href="account/">Account</a> 43 </nav> 44 <div class="bar-end"> 45 <a class="btn btn-ghost btn-hide" href="account/">Account</a> 46 <button class="btn btn-primary" data-studio-enter> 47 <span class="on-wide">Start a design</span><span class="on-narrow">Design</span></button> 48 <button class="burger" id="burger" aria-label="Menu" aria-expanded="false"><span></span></button> 49 </div> 50 </div> 51</header> 52 53<main id="top"> 54 55<!-- âââ The Studio â full bleed, the first thing on the page âââââââââââ --> 56<section id="studio" class="studio-sec"> 57 <!-- studio.js replaces the whole of #studio-root, so this stands in only for 58 as long as its modules take to arrive â the same skeleton the slides use, 59 on the same light. Without it (and without the section's reserved height 60 in studio.css) the first paint dropped the factory band into the top of 61 the window, footage and all, and then shoved it down. --> 62 <div id="studio-root"> 63 <div class="studio-boot">Knitting Studio</div> 64 </div> 65</section> 66 67<!-- âââ Knit, not printed ââââââââââââââââââââââââââââââââââââââââââââââ --> 68<!-- This panel used to open the Studio page (studio-back.js). El moved it here: 69 the homepage is where the claim belongs, and the Studio page gets straight 70 to the blanks. --> 71<section class="cloth" id="cloth"> 72 <figure class="cloth-fig rv"> 73 <img src="media/bellows-blanket.jpg" loading="lazy" 74 alt="A black and ecru jacquard blanket reproducing George Bellows' A Stag at Sharkey's as knitted halftone, with the title up one edge and The Cleveland Museum of Art down the other"> 75 <figcaption>Jacquard blanket · A Stag at Sharkey's, George Bellows 1916 · The Cleveland Museum of Art</figcaption> 76 </figure> 77 <div class="cloth-say rv"> 78 <span class="eyebrow">Knit, not printed</span> 79 <h2>Graphic <em>is</em> the Garment</h2> 80 <p class="lede">Custom apparel has always been two steps: buy a blank, then pay someone to 81 decorate it. We knit the design into the garment as itâs made â yarns swapping places 82 stitch by stitch. The graphic is yarn, not a layer sitting on yarn, so it wears, washes 83 and fades with the fabric instead of against it.</p> 84 <!-- El, 4 Sep â four now, not three. They wrap to two rows in this column, 85 which is why .cloth-facts is a wrapping flex row and not a fixed grid. --> 86 <div class="cloth-facts"> 87 <div><b>1</b><span>unit minimum</span></div> 88 <div><b>$0</b><span>setup or screen fees</span></div> 89 <div><b>$0</b><span>charge per color</span></div> 90 <div><b>100%</b><span>cotton, graphic included</span></div> 91 </div> 92 <button class="btn btn-ghost btn-lg" data-studio-enter>Pick a blank and design it 93 <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" 94 stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 18 6-6-6-6"/></svg></button> 95 </div> 96</section> 97 98<!-- âââ Factory ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ --> 99<section id="factory" class="factory"> 100 <!-- The floor itself, wide, behind everything. The still ships; the footage 101 is an upgrade the device opts into (site.js), and fades in over it. --> 102 <div class="factory-bg" id="floor-reel" data-poster="media/factory-floor.jpg" data-src="media/factory-floor.mp4"> 103 <img src="media/factory-floor.jpg" alt="The knitting floor at Mulberry, Cleveland" loading="lazy"> 104 </div> 105 <div class="factory-scrim"></div> 106 <div class="wrap factory-in"> 107 <div class="factory-copy">
108 <span class="eyebrow">The Factory</span> 109 <h2>Mulberry: Cleveland, Ohio.</h2> 110 <p class="lede">Automated 3D Knitting. One building where yarn goes in and 111 product comes out.</p> 112 </div> 113 <div class="factory-cards"> 114 <!-- El's copy, 4 Sep, verbatim and at EVERY width â the tightened version is 115 the copy now, not a phone-only variant of a longer desktop one. --> 116 <div class="card"><h3>Vertically integrated, additively made</h3> 117 <p>Every product is a digital program sent straight to the machine. Making what you 118 want, when you want it.</p></div> 119 <div class="card"><h3>Automation from file to freight</h3> 120 <p>Our own software carries an order from design to knit to packed box, cutting the 121 production cycle at every step.</p></div> 122 <div class="card"><h3>Real support, real-time visibility</h3> 123 <p>Watch every order move through the floor in real time. The team behind it works in 124 that same building.</p></div> 125 </div> 126 </div> 127</section> 128 129<!-- âââ Industries âââââââââââââââââââââââââââââââââââââââââââââââââââââ --> 130<!-- El, 4 Sep: "Need to add mention of other industries we are in medical, 131 safety apparel ... Fully service product development fashion to automotive, 132 we do technical textiles for medical ppe etc ... Tab called Industries ... 133 make it look similar to factory ... should go right after the cotton is 134 graphic panel." So it is built on the SAME classes as the factory band 135 rather than a lookalike of its own â one set of rules, and the two read as 136 a pair. No data-src here, and site.js only ever upgrades #floor-reel, so 137 this one is a still and stays a still. --> 138<section id="industries" class="factory"> 139 <div class="factory-bg"> 140 <img src="media/technical-textiles.jpg" loading="lazy" 141 alt="Bands of technical knit in tan, ecru and open mesh structures coming off the bed of a blue flatbed machine"> 142 </div> 143 <div class="factory-scrim"></div> 144 <div class="wrap factory-in"> 145 <div class="factory-copy"> 146 <span class="eyebrow">Industries</span> 147 <h2>Textiles are in almost everything.</h2> 148 <p class="lede">We bring our knitting and supply chain expertise to industry-leading 149 products, concept through production in one building. Clients develop directly with the 150 people on the machines, IP protected.</p> 151 </div> 152 <div class="factory-cards"> 153 <div class="card"><h3>Fashion and apparel</h3> 154 <p>Fully-fashioned knitwear, jacquard graphics and engineered structures. Sweaters and 155 accessories built to a brand's own fit, hand and finish.</p></div> 156 <div class="card"><h3>Technical and protective</h3> 157 <p>Flame-resistant, cut-resistant and anti-microbial constructions. The performance is 158 engineered into the structure of the fabric, not added afterward.</p></div> 159 <div class="card"><h3>Medical</h3> 160 <p>New yarn systems and knit constructions for therapeutic and life-saving products. 161 Tight tolerances and repeatable results, lot to lot.</p></div> 162 </div> 163 </div> 164</section> 165 166<!-- âââ Accounts + talk to us ââââââââââââââââââââââââââââââââââââââââââ --> 167<section class="band-ink" id="talk"> 168 <div class="wrap"> 169 <div class="sec-head"> 170 <div> 171 <span class="eyebrow">Accounts</span> 172 <h2 style="color:#fff">Send your design straight to the machines.</h2> 173 <p>Place orders and follow them through the floor. Reorder when youâre ready â no quote 174 request, no waiting on a rep to send a form.</p> 175 </div> 176 </div> 177 <div class="card" style="display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap"> 178 <div style="flex:1;min-width:14rem"><h3 style="color:#fff">Your account</h3> 179 <p>Every design you save in the Studio, everything you have sent us, your quotes with real 180 prices, and the documents and photos we send you â in one place. One sweater or a whole 181 program, it is the same account.</p></div> 182 <!-- El, 2026-09-11: "there should be no create account option â it should 183 be get access code every time". One door, and it says what it is. --> 184 <a class="btn btn-primary" href="account/">Log in to your account</a> 185 </div> 186 <div class="card" style="margin-top:1rem;display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap"> 187 <div style="flex:1;min-width:14rem"><h3 style="color:#fff">Rather just ask us something?</h3> 188 <p>
188Send a spec, a sketch, or a question. We answer with data and a lead time.</p></div> 189 <button class="btn btn-ink" style="background:#fff;color:#0A0A0A;border-color:#fff" data-drawer="message">Message us</button> 190 <a class="btn btn-ghost" style="border-color:rgba(255,255,255,.3);color:#fff" href="mailto:[email protected]">[email protected]</a> 191 </div> 192 </div> 193</section> 194 195</main> 196 197<!-- âââ Footer âââââââââââââââââââââââââââââââââââââââââââââââââââââââââ --> 198<footer> 199 <div class="wrap"> 200 <div class="cols"> 201 <div> 202 <div class="lockup"><img src="brand/logo-wordmark-white.png" alt="Found Surface"></div> 203 <p>Yarn in. Product out. American textiles and custom apparel, knit in Cleveland, Ohio.</p> 204 </div> 205 <div><h4>Site</h4><ul> 206 <li><a href="studio/">Knitting Studio</a></li> 207 </ul></div> 208 <div><h4>Company</h4><ul> 209 <li><a href="#factory">The factory</a></li> 210 <li><a href="#industries">Industries</a></li> 211 <li><a href="#talk">Accounts</a></li> 212 <li><a href="mailto:[email protected]">[email protected]</a></li> 213 </ul></div> 214 <div><h4>Visit</h4><ul> 215 <li>Mulberry</li> 216 <li>West Bank of the Flats</li> 217 <li>Cleveland, Ohio</li> 218 </ul></div> 219 </div> 220 <div class="fine"> 221 <span style="margin:0">© <b id="yr">2026</b> Found Surface · Made in USA</span> 222 </div> 223 </div> 224</footer> 225 226<!-- âââ Drawer: accounts + messages ââââââââââââââââââââââââââââââââââââ --> 227<div class="scrim" id="scrim"></div> 228<aside class="drawer" id="drawer" role="dialog" aria-modal="true" aria-label="Account and contact"> 229 <div class="drawer-hd"> 230 <!-- The drawer is for messages; accounts live at /account/. This is the 231 title before site.js runs, so it has to be the message one. --> 232 <b id="dr-title">Message us</b> 233 <button class="x" id="dr-x" aria-label="Close">â</button> 234 </div> 235 <div class="drawer-bd"> 236 <div id="dr-msg"></div> 237 <form id="dr-form" novalidate> 238 <div id="dr-recap"></div> 239 <label class="f"><span>Name</span><input type="text" name="name" autocomplete="name" required></label> 240 <label class="f"><span>Email</span><input type="email" name="email" autocomplete="email" required></label> 241 <label class="f" id="f-company"><span>Company <em style="color:var(--faint);font-style:normal">optional</em></span><input type="text" name="company" autocomplete="organization"></label> 242 <label class="f"><span>Phone <em style="color:var(--faint);font-style:normal">optional</em></span> 243 <input type="tel" name="phone" autocomplete="tel"></label> 244 <label class="f" id="f-note"><span id="l-note">What are you making?</span> 245 <textarea name="note" placeholder="Styles, colors, quantities, and the date you need them."></textarea></label> 246 <div id="dr-captcha"></div> 247 <button class="btn btn-primary btn-block btn-lg" type="submit" id="dr-send">Send it</button> 248 <p class="note" style="margin-top:.9rem" id="dr-note"> 249 A person reads this â usually the same day. Want to save designs and see your quotes? 250 <a href="account/">Log in</a> â we email you a sign-in code, and that is the whole of it. 251 </p> 252 </form> 253 </div> 254</aside> 255 256<!-- site.js FIRST, on purpose: module scripts run in document order, and 257 ks3d.js pulls in three.js and the loaders (~800KB) before it hands over. 258 Behind it, the studio's own DOM did not exist until all of that had landed. 259 studio.js already waits for `ks3d-ready` (and checks window.KS3D in case it 260 beat it), so the hero can be on screen while the 3D engine is still coming. -->
261<script type="module" src="js/site.js"></script>
261 262<!-- The 3D engine is the portal Knitting Studio's own file, staged by 263 pull-assets.sh â one copy for the site and the portal (see its header). -->
264<script type="module" src="assets/studio/ks3d.js?v=95b1b4c6e6"></script>
264 265</body> 266</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.