diff --git a/drops/endless-journal/public/meta.json b/drops/endless-journal/public/meta.json index 663e717..08f5d3e 100644 --- a/drops/endless-journal/public/meta.json +++ b/drops/endless-journal/public/meta.json @@ -1,7 +1,7 @@ { "name": "endless-journal", "title": "Endless Journal", - "date": "2026-07-20", + "date": "2025-02-03", "tags": [ "Process" ], @@ -121,4 +121,4 @@ ] }, "published": true -} +} \ No newline at end of file diff --git a/drops/flowmap/public/meta.json b/drops/flowmap/public/meta.json index 511bb21..e121f11 100644 --- a/drops/flowmap/public/meta.json +++ b/drops/flowmap/public/meta.json @@ -9,31 +9,29 @@ "content": [ { "type": "text", - "text": "I used a fluid simulation in webgl to create this flowmap with arrows showing the direction or \"current\" within the flow field." + "text": "Using the OGL fluid simulation example as a starting point, this webgl experiment renders a flowmap of arrows that follow the \"current\" of the fluid." } ] }, - { - "type": "paragraph" - }, { "type": "paragraph", "content": [ + { + "type": "text", + "text": "The arrows are rendered by creating a buffer geometry with " + }, { "type": "text", "marks": [ { - "type": "link", - "attrs": { - "href": "https://github.com/oframe/ogl/blob/master/examples/post-fluid-distortion.html", - "target": "_blank", - "rel": "noopener noreferrer nofollow", - "class": null, - "title": null - } + "type": "code" } ], - "text": "https://github.com/oframe/ogl/blob/master/examples/post-fluid-distortion.html" + "text": "InstancedMesh" + }, + { + "type": "text", + "text": " to create a grid of arrows that covers the screen. The direction and size of the arrows is then manipulated in the vector shader to follow the velocity at that point in the simulation." } ] } @@ -44,4 +42,4 @@ "visualization" ], "published": true -} +} \ No newline at end of file diff --git a/drops/image-melody/public/meta.json b/drops/image-melody/public/meta.json index efc2955..62cd49b 100644 --- a/drops/image-melody/public/meta.json +++ b/drops/image-melody/public/meta.json @@ -1,7 +1,7 @@ { "name": "image-melody", "title": "Image Melody", - "date": "2026-07-20", + "date": "2026-01-30", "tags": [ "tag1", "tag2", @@ -15,7 +15,7 @@ "content": [ { "type": "text", - "text": "My friend Patrick wanted to try generating music from an image. I made this simple experiment which plays notes in a scale based on some of the color values in a pixelated version of the image." + "text": "This experiment processes an image and creates a simple melody from the image data. To do this, the image is pixelated to a 5x5 resolution and sampled to determine the order of the notes. The notes for this example are chosen from the C Major pentatonic scale so that they will sound \"musical\" in any order." } ] } diff --git a/drops/noise-shader/public/meta.json b/drops/noise-shader/public/meta.json index 64d571d..e476ada 100644 --- a/drops/noise-shader/public/meta.json +++ b/drops/noise-shader/public/meta.json @@ -1,7 +1,7 @@ { "name": "noise-shader", "title": "Noise Shader", - "date": "2026-07-20", + "date": "2025-05-20", "tags": [ "tag1", "tag2", @@ -15,7 +15,7 @@ "content": [ { "type": "text", - "text": "I was messing around with a shader to add noise to a texture, and ended up getting this cool effect when I divided the noise value by the distance to the user's mouse." + "text": "This shader uses randomized noise combined with a two bit filter, and a mouse distance multiplier to create this interesting effect that almost feels like a flashlight in the darkness." } ] } diff --git a/drops/noise-shader/src/libs/glsl/noise-image/frag.glsl b/drops/noise-shader/src/libs/glsl/noise-image/frag.glsl index 67aff8a..62f0c0e 100644 --- a/drops/noise-shader/src/libs/glsl/noise-image/frag.glsl +++ b/drops/noise-shader/src/libs/glsl/noise-image/frag.glsl @@ -27,8 +27,6 @@ void main() { float aspectRatio = u_resolution.x / u_resolution.y; vec2 st = vec2(v_uv.x * aspectRatio, v_uv.y); vec2 st_mouse = vec2(u_mouse.x * aspectRatio, u_mouse.y); - // vec2 st_mouse = vec2(0.5,0.5); - float distance = max(0.6, distance(st, st_mouse) * 10.); diff --git a/drops/testing/index.html b/drops/testing/index.html deleted file mode 100644 index 9c259e7..0000000 --- a/drops/testing/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - Testing - - -
- - - diff --git a/drops/testing/package.json b/drops/testing/package.json deleted file mode 100644 index fe5a6fb..0000000 --- a/drops/testing/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "testing", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "preview": "vite preview" - }, - "dependencies": { - "sass": "^1.98.0", - "sass-embedded": "^1.98.0", - "vue": "^3.5.30", - "@fuzzco/font-loader": "^1.0.2" - }, - "devDependencies": { - "@vitejs/plugin-vue": "^6.0.5", - "vite": "^8.0.0" - } -} diff --git a/drops/testing/public/favicon.png b/drops/testing/public/favicon.png deleted file mode 100644 index 792433d..0000000 Binary files a/drops/testing/public/favicon.png and /dev/null differ diff --git a/drops/testing/public/meta.json b/drops/testing/public/meta.json deleted file mode 100644 index e8e8854..0000000 --- a/drops/testing/public/meta.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "testing", - "title": "Testing", - "description": { - "type": "doc", - "content": [ - { - "type": "paragraph", - "content": [ - { - "type": "text", - "text": "This is just a test drop to make sure everything is working correctly." - } - ] - }, - { - "type": "heading", - "attrs": { - "level": 1 - }, - "content": [ - { - "type": "text", - "text": "Heading" - } - ] - }, - { - "type": "paragraph", - "content": [ - { - "type": "text", - "text": "more text." - } - ] - }, - { - "type": "paragraph" - } - ] - }, - "date": "2026-07-17", - "tags": [ - "tag1", - "tag2", - "tag3" - ], - "links": [ - { - "label": "Source Code", - "url": "https://github.com/username/repo" - } - ], - "notes": "Any additional notes or thoughts about this drop", - "published": false -} diff --git a/drops/testing/src/App.vue b/drops/testing/src/App.vue deleted file mode 100644 index 69fe088..0000000 --- a/drops/testing/src/App.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/drops/testing/src/components/Btn.vue b/drops/testing/src/components/Btn.vue deleted file mode 100644 index 66e1996..0000000 --- a/drops/testing/src/components/Btn.vue +++ /dev/null @@ -1,152 +0,0 @@ - - - - - diff --git a/drops/testing/src/components/Testing.vue b/drops/testing/src/components/Testing.vue deleted file mode 100644 index c68c173..0000000 --- a/drops/testing/src/components/Testing.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - - - diff --git a/drops/testing/src/libs/math.js b/drops/testing/src/libs/math.js deleted file mode 100644 index 62183bd..0000000 --- a/drops/testing/src/libs/math.js +++ /dev/null @@ -1,20 +0,0 @@ -export function clamp(min, input, max) { - return Math.max(min, Math.min(input, max)); -} - -export function mapRange(in_min, in_max, input, out_min, out_max) { - return ((input - in_min) * (out_max - out_min)) / (in_max - in_min) + out_min; -} - -export function lerp(start, end, amt) { - return (1 - amt) * start + amt * end; -} - -export function truncate(value, decimals) { - return parseFloat(value.toFixed(decimals)); -} - -export function wrapValue(value, lowBound, highBound) { - const range = highBound - lowBound; - return ((((value - lowBound) % range) + range) % range) + lowBound; -} diff --git a/drops/testing/src/main.js b/drops/testing/src/main.js deleted file mode 100644 index 91e76b3..0000000 --- a/drops/testing/src/main.js +++ /dev/null @@ -1,6 +0,0 @@ -import '@shared/styles/shared.scss' -import './styles/main.scss' -import { createApp } from 'vue' -import App from './App.vue' - -createApp(App).mount('#app') diff --git a/drops/testing/src/styles/main.scss b/drops/testing/src/styles/main.scss deleted file mode 100644 index 7089c0f..0000000 --- a/drops/testing/src/styles/main.scss +++ /dev/null @@ -1 +0,0 @@ -/* Drop specific styles */ diff --git a/drops/testing/vite.config.js b/drops/testing/vite.config.js deleted file mode 100644 index f1cd91c..0000000 --- a/drops/testing/vite.config.js +++ /dev/null @@ -1,50 +0,0 @@ -import { fileURLToPath, URL } from 'node:url' -import { defineConfig } from 'vite' -import vue from '@vitejs/plugin-vue' -import config from '../../shared/config.js' -import { toSass } from '../../shared/libs/sass/index.js' - -export default defineConfig({ - plugins: [vue()], - server: { - port: 3000, - }, - resolve: { - alias: { - '@': fileURLToPath(new URL('./src', import.meta.url)), - '@shared': fileURLToPath(new URL('../../shared', import.meta.url)), - }, - }, - base: '/drops/testing/', - build: { - outDir: '../../app/public/drops/testing', - emptyOutDir: true, - }, - css: { - preprocessorOptions: { - scss: { - api: 'modern-compiler', - additionalData: - '@use "@shared/styles/_functions.scss" as *; @use "@shared/styles/_font-style.scss" as *;', - functions: { - 'get($keys)': function (keys) { - keys = keys.toString().replace(/['"]+/g, '').split('.') - - let result = config - for (let i = 0; i < keys.length; i++) { - result = result[keys[i]] - } - - return toSass(result) - }, - 'getColors()': function () { - return toSass(config.colors) - }, - 'getThemes()': function () { - return toSass(config.themes) - }, - }, - }, - }, - }, -})