← Commit history

Use decoder-independent CAD assembly in sandboxed interactive preview

matt ·03d133a599 · ·parent 8ec0e7c
2 files changed +1−1
assets/puck-assembly-interactive.glbadded
⋯ 1 unchanged line ⋯
readme.html+1−1
@@ -5,7 +5,7 @@ const film=false;if(film)document.body.classList.add('film'); const timeline=await(await fetch('https://wiki.adom.inc/matt/fan-controller/render/timeline.json')).json(); const viewer=window.Adom3DViewerBabylon9.init(document.querySelector('#viewer'),{zUp:true,showGround:false,axes:false,shadows:false,animate:false,showHelp:!film,showViewCube:!film,background:'#111827',tooltips:'authored'});-window.loadStage='model';const modelUrl=new URL('https://wiki.adom.inc/matt/fan-controller/render/assets/puck-assembly.glb');if(window.__wikiCap)modelUrl.searchParams.set('cap',window.__wikiCap);const modelResponse=await fetch(modelUrl);if(!modelResponse.ok)throw new Error('Model download: '+modelResponse.status);await viewer.loadModelBytes(new Uint8Array(await modelResponse.arrayBuffer()),{extension:'.glb'});window.loadStage='ready';await viewer.whenReady();window.loadStage='babylon';+window.loadStage='model';const modelUrl=new URL('https://wiki.adom.inc/matt/fan-controller/render/assets/puck-assembly-interactive.glb');if(window.__wikiCap)modelUrl.searchParams.set('cap',window.__wikiCap);const modelResponse=await fetch(modelUrl);if(!modelResponse.ok)throw new Error('Model download: '+modelResponse.status);await viewer.loadModelBytes(new Uint8Array(await modelResponse.arrayBuffer()),{extension:'.glb'});window.loadStage='ready';await viewer.whenReady();window.loadStage='babylon'; const B=await viewer.loadBabylon(),scene=viewer.getScene();window.loadStage='pose';window.viewer=viewer;window.scene=scene; const nodes={};for(const name of ['PCB','body','cap','bezel','knob','pipes','hardware']){const n=scene.getNodeByName(name);if(!n)throw Error('Missing node '+name);nodes[name]=n;n._base=n.position.clone();} const camera=scene.activeCamera;camera.minZ=.0001;camera.maxZ=10;