Files
manifold/bindings/wasm/examples/editor/index.html
T
Anshul 6178ce30a9 Versioned deploy follow-ups (#1807)
* minor fixes

* Publish master as alpha/ and document manual deploys

* remove /latest + add it to the root

* minor cleanups
2026-08-27 21:17:47 +12:00

98 lines
4.7 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<title>ManifoldCAD</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description"
content="Fast, reliable, parametric solid modeling web app. Programmatic 3D design with JavaScript, inspired by and improving upon OpenSCAD & JSCAD. Demonstrates a new GPU-parallel, open-source geometry kernel: Manifold.">
<meta name="theme-color" content="#A288B3">
<meta property="og:title" content="ManifoldCAD">
<meta property="og:type" content="website">
<meta property="og:url" content="https://manifoldcad.org/" />
<meta property="og:image" content="https://elalish.github.io/manifold/samples/models/mengerSpongeSquare.png">
<meta property="og:image:width" content="850">
<meta property="og:image:height" content="850">
<link rel="shortcut icon" type="image/png" href="./icons/ManifoldIcon.png">
<link rel="manifest" href="./manifest.json">
<link type="text/css" href="editor.css" rel="stylesheet">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "ManifoldCAD",
"applicationCategory": "DesignApplication",
"offers": {
"@type": "Offer",
"price": "0"
}
}
</script>
<script>
self.ModelViewerElement = self.ModelViewerElement || {};
self.ModelViewerElement.modelCacheSize = 0;
</script>
</head>
<body>
<div class="page">
<div class="container header">
<p style="flex: 2; margin-left: 16px;"><a target="_blank" href="https://github.com/elalish/manifold">Manifold</a>CAD
&nbsp;&nbsp;<span class="top-edit blue">
<button type="button" id="undo" class="top-icon undo squish" title="Undo"></button>
<button type="button" id="redo" class="top-icon redo squish" title="Redo"></button>
<button type="button" id="format" class="top-icon star squish" title="Format Code"></button>
<button type="button" id="share" class="top-icon share squish" title="Copy Shareable Link"></button>
<a target="_blank" href="./docs/jsuser/" class="top-icon docs squish" title="Documentation"></a>
<button type="button" id="edgesToggle" class="top-icon edges" title="Toggle Edges" aria-pressed="false"></button>
</span>
<span id="type-indicator" style="font-size: 14px; margin-left: 12px; font-weight: normal; opacity: 0.8;"></span>
</p>
<div class="margin" id="file-margin">
<button type="button" id="file" class="blue item"><b class="uparrow"></b>&nbsp;&nbsp;<span id="current">Intro</span><button
id="current-edit" class="icon edit" aria-hidden="true"></button></button>
<div class="dropdown" id="fileDropdown">
<button type="button" class="green item" id="new">New</button>
</div>
</div>
<div class="container" id="button-container">
<button type="button" id="compile" class="margin green" disabled><span>Run</span></button>
<div id="save" class="margin" style="position: relative; ">
<div class="item">
<button type="button" id="glb" class="blue item">Save GLB</button>
<button type="button" class="icon"><b class="uparrow" style="right: 2px;"></b></button>
</div>
<div class="dropdown" id="saveDropdown">
<div class="item">
<button type="button" id="threemf" class="blue item">Save 3MF</button>
</div>
</div>
</div>
</div>
</div>
<!-- Draggable pane dividers-start -->
<div id="workbench" class="container workbench" style="flex: 2;">
<div id="editor" class="col pane-left"></div>
<div id="split-x" class="splitter splitter-x" aria-hidden="true"></div>
<div id="rightPane" class="col container pane-right" style="flex-direction: column;">
<model-viewer id="viewer" camera-controls min-camera-orbit="auto 0deg auto" max-camera-orbit="auto 180deg auto"
min-field-of-view="1deg" shadow-intensity="1" tone-mapping="neutral" interaction-prompt="none" alt="Editor 3D output">
<div class="center" slot="poster">
<p id="poster" style="text-align: center; line-height: 36px;"> Loading... </p>
</div>
<div id="animation">
<button type="button" id="play" class="icon pause"></button>
<input type="range" min="0" max="1" step="0.01" value="0" class="slider" id="scrubber">
</div>
</model-viewer>
<div id="split-y" class="splitter splitter-y" aria-hidden="true"></div>
<!-- Draggable pane dividers-end -->
<div id="console"></div>
</div>
</div>
</div>
</body>
<script type="module" src="editor-examples.js"></script>
<script type="module" src="editor.js"></script>
</html>