add drafts

This commit is contained in:
Tom 2023-11-09 16:01:19 +00:00
parent 57b99c2e98
commit c248dcb77b
3 changed files with 98 additions and 7 deletions

32
_drafts/outlines.md Normal file
View File

@ -0,0 +1,32 @@
---
title: Outlines
excerpt: |
head: |
<script async src="https://unpkg.com/es-module-shims@1.8.0/dist/es-module-shims.js"></script>
<script type="importmap">
{
"imports": {
"three": "https://unpkg.com/three@0.156.1/build/three.module.js",
"three/addons/": "https://unpkg.com/three@0.156.1/examples/jsm/"
}
}
</script>
layout: post
hide_image: true # Only use this image for static previews
image:
alt: A render of a 3D printed shelf sitting above a shaver outlet, it spins slowly.
---
<figure>
<canvas id = "threejs" style="width:100%; height: 500px"></canvas>
<figcaption>
Hey look, threeJS!
</figcaption>
</figure>
<script src="/assets/js/three/index.js" type="module"></script>

View File

@ -6,10 +6,26 @@ layout: post
hide_image: true # Only use this image for static previews hide_image: true # Only use this image for static previews
image: /assets/blog/toothbrush_shelf/spin.gif image: /assets/blog/toothbrush_shelf/spin.gif
alt: A render of a 3D printed shelf sitting above a shaver outlet, it spins slowly. alt: A render of a 3D printed shelf sitting above a shaver outlet, it spins slowly.
head: |
<script async src="https://ga.jspm.io/npm:es-module-shims@1.7.1/dist/es-module-shims.js"></script>
<script type="importmap">
{
"imports": {
"three": "https://cdn.jsdelivr.net/npm/three@^0.157.0/build/three.module.min.js"
}
}
</script>
<script type="module" src="https://cdn.jsdelivr.net/npm/@google/model-viewer/dist/model-viewer-module.min.js"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/@google/model-viewer-effects/dist/model-viewer-effects.min.js"></script>
--- ---
<figure> <figure>
<model-viewer style="width: 500px; height: 500px;" src="/assets/blog/scans/container/container.glb" ar ar-modes="scene-viewer webxr quick-look" camera-controls shadow-intensity="1" exposure="1.08" camera-orbit="30.45deg 63.68deg 27.8m" field-of-view="22.88deg" auto-rotate> <model-viewer style="width: 500px; height: 500px;" src="/assets/blog/scans/container/container.glb" ar ar-modes="scene-viewer webxr quick-look" camera-controls shadow-intensity="1" exposure="1.08" camera-orbit="30.45deg 63.68deg 27.8m" field-of-view="22.88deg" auto-rotate>
<effect-composer>
<pixelate-effect></pixelate-effect>
</effect-composer>
</model-viewer> </model-viewer>
<figcaption> <figcaption>
Done with the lidar scanner on an Ipad. Done with the lidar scanner on an Ipad.

View File

@ -1,5 +1,5 @@
--- ---
title: Vase Generator title: THREE.js
excerpt: | excerpt: |
@ -42,6 +42,7 @@ want to port code from https://github.com/TomHodson/VaseExtruder
const scene = new THREE.Scene(); const scene = new THREE.Scene();
scene.background = new THREE.Color(background_color); scene.background = new THREE.Color(background_color);
const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 ); const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
camera.position.z = 100;
const canvas = document.getElementById("threejs"); const canvas = document.getElementById("threejs");
const renderer = new THREE.WebGLRenderer({canvas: canvas, antialias: true, powerPreference: "low-power"}); const renderer = new THREE.WebGLRenderer({canvas: canvas, antialias: true, powerPreference: "low-power"});
@ -57,17 +58,61 @@ want to port code from https://github.com/TomHodson/VaseExtruder
const dracoLoader = new DRACOLoader(); const dracoLoader = new DRACOLoader();
dracoLoader.setDecoderPath( 'jsm/libs/draco/gltf/' ); dracoLoader.setDecoderPath( 'jsm/libs/draco/gltf/' );
const onWindowResize = () => {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
}
const loader = new GLTFLoader(); const loader = new GLTFLoader();
loader.setDRACOLoader( dracoLoader ); loader.setDRACOLoader( dracoLoader );
loader.load( '/assets/blog/shelves/model/shelves.glb', function ( gltf ) { loader.load( '/assets/projects/bike_lights/model/untitled.glb', function ( gltf ) {
const model = gltf.scene; const model = gltf.scene;
console.log(model);
// traverse the scene and make modifications if necessary
model.traverse((o) => {
if (o.isMesh) {
const flat_material = new THREE.MeshBasicMaterial( {
color: 0xffffff,
polygonOffset: true,
polygonOffsetFactor: 1, // positive value pushes polygon further away
polygonOffsetUnits: 1
} );
o.material = flat_material;
scene.add(o);
// const flat_model = new THREE.LineSegments( o.geometry, flat_material);
// scene.add(flat_model);
const thresholdAngle = 10;
const wireframe_geometry = new THREE.EdgesGeometry(o.geometry, thresholdAngle);
const line = new THREE.LineSegments(wireframe_geometry);
line.material.color.setHex(0x000000);
line.scale.set(10,10,10)
scene.add(line);
// const line_material = new THREE.LineBasicMaterial( { color: 0x000000 } );
// const wireframe_model = new THREE.LineSegments( wireframe_geometry, line_material);
// wireframe_model.scale.set(10,10,10);
// scene.add(wireframe_model);
}
});
// model.position.set( 1, 1, 0 ); // model.position.set( 1, 1, 0 );
model.scale.set( 1, 1, 1 ); // model.scale.set( 1, 1, 1 );
scene.add( model ); // scene.add( model );
animate(); animate();
// Add listener for window resize.
window.addEventListener('resize', onWindowResize, false);
}, undefined, function ( e ) { }, undefined, function ( e ) {
console.error( e ); console.error( e );
@ -79,8 +124,6 @@ want to port code from https://github.com/TomHodson/VaseExtruder
// const cube = new THREE.Mesh( geometry, material ); // const cube = new THREE.Mesh( geometry, material );
// scene.add( cube ); // scene.add( cube );
camera.position.z = 5;
function animate() { function animate() {
requestAnimationFrame( animate ); requestAnimationFrame( animate );