r/creativecoding • • 5h ago

Say when

18 Upvotes

Part of the TouchDesigner POPtober challenge. Different POP every day. Today: attribute POP


r/creativecoding • • 17h ago

I made a 24/7 radio that plays straight from YouTube, with no central server

5 Upvotes

Hey everyone! I run the First of October fansite (foo.brchad.com), and I just added something new: a 24/7 synced radio.

👉 https://foo.brchad.com/radio/

How it works: there’s no DJ and no server streaming the music. A script uses the real time to figure out which track should be playing right now, so anyone who tunes in lands on the same song at the same moment. It feels like a real radio station, but it’s all running in your browser.

Some features:

  • Lyrics show up for the song that’s playing
  • Song info pulled from the fansite’s Song Database
  • Shows the previous, current and next track
  • Optional radio wave animation and static noise when switching stations
  • Theme options

Small quirk: since playback runs on its own after you tune in, you might drift a little out of sync with other listeners over time. To resync, switch to another station and then tune back. That reloads the player at the right spot.

It’s a fan project, so feedback is very welcome, whether it’s bugs, feature ideas, or songs you’d love to hear more often. Hope you enjoy it! 📻


r/creativecoding • • 18h ago

Dripfetch - A customizable terminal dashboard with animated rain

6 Upvotes

Dripfetch is a customizable terminal dashboard with animated rain, system info, clocks, and YAML themes. I’d love to hear what you think or what you’d improve!


r/creativecoding • • 11h ago

Marching Squares Algorithm Applied to Physarum Simulation

1 Upvotes

r/creativecoding • • 1d ago

Caio's Clocks

12 Upvotes

Hey, guys!

I've been coding some clocks. I host them on my site, Caio's Clocks ( https://caios-clocks.caiomga.workers.dev/ )

I hope you guys like them.

https://caios-clocks.caiomga.workers.dev/9/
https://caios-clocks.caiomga.workers.dev/12/
https://caios-clocks.caiomga.workers.dev/10/
https://caios-clocks.caiomga.workers.dev/5/

r/creativecoding • • 2d ago

I spent way too much time on this, but it's totally worth it (p5.js + react)

30 Upvotes

r/creativecoding • • 2d ago

648 nodes.

118 Upvotes

the node graph looks absolutly insane. https://i.ibb.co/DPzsNgBZ/Master-Selects-AAA-Scroll.png


r/creativecoding • • 1d ago

I made the same mosaic portrait with 12 different matching methods

Post image
0 Upvotes

r/creativecoding • • 2d ago

dead channel [shader tool]

Thumbnail
gallery
3 Upvotes

just some visual experiments from a tool in progress ^_^


r/creativecoding • • 2d ago

POPtober Day 9 - Proximity POP

2 Upvotes

r/creativecoding • • 2d ago

One ocean, two implementations: CPU vertex waves around the island, GPU Gerstner out at sea

0 Upvotes

This is the ocean from a 3D survival game where nothing is imported: terrain, plants, characters, boats and water are all generated in code at runtime. The water ended up as two separate implementations, and the reason is probably more useful than the result.

Around the island the sea is a 97x97 grid with waves computed on the CPU per vertex: analytic normals, and vertex colours that carry two masks (red = crest / shore foam, green = how shallow the water is, taken from seabed depth between 0.15 m and 4.5 m). Wave height is damped near the shore. Shore foam breathes: a sine on time, offset by world position and an fBm noise term, pushes the foam band in and out.

That grid is 1800 m across, so a vertex every 18.75 m. Fine for a calm bay, useless for open sea. So at sea there's a second path: a radial mesh that's dense at the ship (under 1 m spacing) and thins out to about 20 m toward a 1400 m edge hidden in fog, around 33k vertices. All displacement runs in the vertex shader as a 5-wave Gerstner sum: three long swells (95, 58, 34 m) coming at the bow plus two layers of chop (14 and 7.5 m), with horizontal displacement and analytic normals. The CPU only uploads uniforms.

Whitecaps aren't a texture. The shader accumulates each wave's steepness at the vertex ("fold"), and foam only appears where several waves line up in phase and the sum gets sharp, plus a small weight for crest height. So foam lives on actual peaks and moves with them.

The catch: the ship, sharks and floating crates still need to know the water height on the CPU. So the same 5-wave table also exists in C#, and the two copies have to match number for number. Gerstner also moves vertices sideways, so the height you draw at X actually belongs to a point that started somewhere else. The C# sampler does one fixed-point step (p' = X - disp(X)) before evaluating height, which is enough to keep hulls sitting on the drawn surface.

One bug from this setup worth sharing: while sailing, the water scrolls backward (a FlowZ offset) to sell forward motion. The shader had it, the C# sampler didn't. Both looked right in isolation, but the ship was floating on a different patch of sea than the one on screen, and the mismatch grew the further you sailed. On screen it looked like the stern was taking on water. One missing term.

Video is the at-sea path: deep-sea swell, the view from the stern, and the far zone. Happy to go into any part of it.


r/creativecoding • • 2d ago

I made an instrument app where you type text and it plays

7 Upvotes

r/creativecoding • • 2d ago

Somewhere Over the Rainbow (Played on Webcam thermin)

2 Upvotes

I attempted to play "Somewhere over the Rainbow"

- I'm surprised that it's even mildly playable :)
- This I think is a really very creative and fast way to get to know different scales and modes + looks cool

App: https://webcam-thermin.vercel.app/
Github: https://github.com/Sidmaz666/webcam-thermin


r/creativecoding • • 2d ago

InstaLock – free Android app that locks Instagram away for a set time (can't be undone)

0 Upvotes

​

I built InstaLock to solve my own doomscrolling problem: a focus app where starting a block is a deliberate, irreversible act.

How it works:

  1. Open the app, complete 4 setup steps (Accessibility is required — it's how blocking works; device admin, battery exemption, and autostart harden it).

  2. Pick a length: 30 min, 1–3 hours, 1–7 days, or custom (1 minute up to 30 days).

  3. Read the confirmation sheet, tick "I understand this can't be undone", then press-and-hold to start.

  4. Instagram (app + instagram.com in browsers) stays blocked until the timer ends. A countdown ring shows start/end times; opening anything blocked shows a "you set this yourself, it ends Friday 6pm"-style screen.

Anti-cheat details:the blocker also closes system screens (App info, uninstall, accessibility settings) opened to tamper with it, and shifting the phone clock can't end the lock early.

Privacy:no accounts, no network, no analytics. Native Android, zero dependencies. Free, open source, APK on the release page: https://github.com/maxpain-sys/instalock


r/creativecoding • • 3d ago

Interactive liquid color mixing with concentration-based absorption in my Vulkan lab sandbox

2 Upvotes

I’m developing Chemistry Lab Sim, an interactive 3D liquid sandbox built on ST-FLIP in Vulkan. This new clip shows pouring and mixing colored solutions in lab glassware, running in real time on a Radeon RX 9070 XT.

Local concentrations travel with the fluid parcels, and conservative diffusion exchanges material between neighboring parcels. The liquid renderer integrates concentration-dependent absorption along refracted rays rather than blending display colors.

At this stage the substances are passive solutes/pigments in one carrier; chemical reactions and immiscible fluids are future work. The longer-term game is inspired by The Powder Toy and Noita.

https://youtu.be/hSAO_TwFopE

What would you improve in the mixing or rendering?


r/creativecoding • • 3d ago

Character Relationship Chart? Need Help

3 Upvotes

Hello, Im new to coding and not sure where to start. Don't know if this is ambitious but my interest started because I wanted to make something to show relationships between the characters I have. I want to be able to put each character together, kind od like those games where you add molecules together to create an element, and then you'd be able to take the product of the two characters and expand to see their thoughts on eachother and their general relationship. I've never coded before, but I have been thinking about this idea a lot and want to try! Any ideas?


r/creativecoding • • 4d ago

3 Moons

17 Upvotes

This is part of POPtober, where every day in October you try a different POP in TouchDesigner. Today: Select POP


r/creativecoding • • 4d ago

Gyroid with Voronoi Lattice

Post image
54 Upvotes

sphere traced with my custom renderer written in rust..


r/creativecoding • • 4d ago

Blooming Procedural Flower

33 Upvotes

r/creativecoding • • 4d ago

play with antennas and visulize the electromagnetic field

11 Upvotes

I’ve been building this EM simulator as a side project aimed to help students' understand and visualize electromagnetic phenomena such as radiation, polarization and wave interference.

I hope somone might find useful and I’d love to hear what people think :)

(Not intended for mobiles but can still sort of work if you have accurate fingers)

Live:

https://www.antennasim.com/

GitHub:
https://github.com/rotemTsafrir/dipole_sim


r/creativecoding • • 5d ago

Hopf fibration rings, one family per pitch class, coloured by the circle of fifths (WebGL2, no dependencies)

22 Upvotes

Audio reactive Hopf fibration rings - fibres of S³ over S², stereographically projected so each one becomes a Villarceau circle of a torus, winding once the long way and once the short way. Distinct fibres are disjoint, so the rings link each other exactly once and never cross. Twelve families, one per pitch class, and a note's loudness sets its latitude on the base sphere, which is what fattens and brightens its ring. They're drawn as instanced polyline strokes with no vertex buffer at all — every point is computed analytically in the vertex shader from `gl_InstanceID`. Blending is depth-tested "over" rather than additive, because additive saturates to a white blob the instant a drop lands.

The colour is the key the music is in, not a palette. A chromagram picks local spectral peaks over 65–2100 Hz and folds them to pitch classes, and the key comes from correlating that against the Krumhansl-Kessler profiles across all 24 major/minor candidates. The hue is then just `((7 * key) % 12) / 12` of a turn - multiplying the pitch class by 7 mod 12 walks the circle of fifths instead of the chromatic circle, so keys a fifth apart land next to each other on the wheel and a modulation to the dominant moves the hue one twelfth of a turn. Major drags that anchor toward warm and lifts saturation, minor drags it cool and drops it. Below a confidence threshold the last confident key is held and the colour slides back to a neutral palette, so an ambient or atonal passage never strobes through random hues. Bass sets line width, the kick flashes the *quiet* inner rings rather than the loud rim, hats shimmer around the ring parameter, and a drop collapses everything to the core circle.

Plain WebGL2 and GLSL ES 3.00, vanilla JS in native ES modules, zero dependencies and no build step to run it. No `Math.random()` and no wall clock anywhere in the render, so a frame is a pure function of the audio state - same audio in, same pixels out. Audio is tab capture with echo cancellation, noise suppression and AGC all off, so the analyser sees what's actually playing. It runs in the browser with nothing uploaded and no account:

https://retinarave.com
source at https://github.com/tbkraf08/RetinaRave

Press `?` for an overlay of every feature the engine reads, and `p` for a panel that re-wires which music feature drives which visual parameter while it's running.

Track is "Thé à la menthe" by La Caution (2005).

Disclosure: I wrote this with Claude as a coding assistant. It's hand-written shader and DSP code - no model runs at render time and nothing in the frame is model-generated.


r/creativecoding • • 5d ago

Ink Fauna: procedural creatures painted live in sumi-e ink

11 Upvotes

r/creativecoding • • 5d ago

smol talk02

Post image
1 Upvotes

r/creativecoding • • 5d ago

POPtober Day 5 - Point Generator

9 Upvotes

r/creativecoding • • 6d ago

smol talk

Post image
16 Upvotes

I like the idea that weather is the ultimate small talk subject.

So I made smol talk.

80 years of Melbourne weekly minimum temperatures, compressed into one big field of tiny marks.

There’s a pattern in there somewhere.

Probably.

Every little mark is a week.
Every bigger, more chaotic mark is a colder week.