You are browsing as a guest. Sign up (or log in) to start making projects!

Dasher280I

@Dasher280I

Joined July 29th, 2026

  • 9Devlogs
  • 2Projects
  • 2Ships
  • 31Votes
Ship Pending review

This project is an interactive 2D fluid simulation built with HTML5 and vanilla JavaScript. Users can interact with the canvas by clicking, dragging, or touching to paint dynamic, swirling ink patterns while background particles react to the underlying velocity fields. It features a sleek, expandable settings menu styled with CSS frosted-glass effects, allowing users to customize stroke width, dissipation duration, brightness, and color themes—such as cyan, purple, green, orange, pink, or white—in real time. Programmatically, the simulation is driven by a grid-based Navier-Stokes physics engine that handles diffusion, advection, and pressure projection, rendering efficient pixel data via an offscreen canvas. Cross-platform usability is supported through pointer events paired with CSS rules that prevent unwanted mobile scrolling and block unintended drawing when interacting with the sidebar controls. A key technical challenge addressed during development was preventing the mathematical simulation from breaking or destabilizing under extremely fast inputs or overlapping forces, which was solved by implementing conditional logic that evaluates and updates maximum density increments rather than allowing runaway value accumulation.

  • 4 devlogs
  • 24h
Try project → See source code →
Open comments for this post

6h 10m 35s logged

The latest update to the fluid simulation introduces a fully interactive settings menu to give users real-time control over the visual output. A new toggle button opens a sliding sidebar menu. Inside this sidebar, a series of range sliders allows users to dynamically adjust the fluid’s stroke width, the duration before it dissipates, and its overall brightness. Furthermore, a dropdown menu was integrated to let users switch the fluid color between cyan, purple, green, orange, pink, and white.

0
0
16
Open comments for this post

5h 19m 15s logged

To eliminate the harsh pixelation caused by rendering low-resolution grid cells directly to the main display, the rendering pipeline was updated to use an offscreen canvas matching the exact simulation grid dimensions. Fluid density values are now written directly into an ImageData pixel buffer on this offscreen canvas. When drawing to the screen, the offscreen canvas is scaled up with high-quality bilinear interpolation enabled (imageSmoothingEnabled = true), seamlessly blending the pixel boundaries. This achieves a smooth, continuous fluid flow with soft gradients without impacting the performance of the underlying physics simulation.

0
0
79
Open comments for this post

5h 53m 53s logged

Things are starting to get interesting! I spent the last few hours adding a velocity vector field to the grid. Now, instead of just bleeding outward uniformly, the dye actually gets carried by the current. I had to wrap my head around advection, which took some debugging, but mapping the mouse movement to generate directional forces totally changed the feel. When you drag the cursor, it pushes the fluid around, creating these cool, swirling patterns. It’s still just grid-based colors, but it finally behaves like a real liquid. Can’t wait to drop actual particles into this current!

0
0
11
Open comments for this post

6h 22m 39s logged

Just kicked off my new fluid simulation project for Stardance! Today, I got the absolute basics running. I set up the HTML canvas and built a 2D grid array to handle the underlying math. It’s pretty barebones right now—just clicking and dragging the mouse to inject some neon color into the cells. I implemented a simple diffusion algorithm, so the colors spread out to neighboring cells and slowly fade away over time. It looks a bit blocky because of the low resolution, but it’s super satisfying to see the arrays updating correctly. Next up: adding actual fluid movement!

0
0
14
Ship

I built an interactive 2D particle simulator using HTML5 Canvas, Vanilla JavaScript, and CSS. It features a dynamic starfield that responds to clicks, touch inputs, and mouse movements with physical shockwaves, implosions, motion trails, and parallax depth. I also integrated real-time sound effects generated via the Web Audio API and added a live control panel to tweak physics and visual settings on the fly.

  • 5 devlogs
  • 26h
  • 10.38x multiplier
  • 271 Stardust
Try project → See source code →
Open comments for this post

5h 45m 47s logged

In this update, the particle simulator received several key enhancements to boost visual depth and interactivity. Motion trails were introduced by rendering the canvas background with a semi-transparent alpha channel instead of a complete clear, leaving glowing paths behind moving particles. The physics engine now features a parallax depth effect where larger stars possess greater mass, causing them to react more dynamically to shockwaves than smaller background particles. Additionally, a new implosion mechanic was implemented—accessible via right-click or mobile touch controls—which draws particles inward rather than pushing them away, complete with customized boundary bouncing to keep stars on screen. To tie everything together, the Web Audio API synthesizer was upgraded to dynamically shift frequencies based on whether an explosion or an implosion is triggered, creating a fitting audio response for both actions.

0
0
35
Open comments for this post

5h 14m logged

I’ve continued developing Star Simulation. There are now a few sliders at the bottom. The first slider lets you zoom out—showing more or fewer stars depending on the setting. You can make the stars colorful or white and add a faint Milky Way effect in the background. I ran into major issues with the zoom function; at one point, it stopped working entirely, and the stars would simply move at random without any input.

0
0
39
Open comments for this post

5h 28m logged

The development of starsimulation is moving into the next phase. I’ve got the stars in place now—all colored, but with a feature where they change color whenever the game is reloaded. You can also adjust the speed at which the sound wave propagates, as well as the force with which it pushes the stars away. However, I ran into some major issues here: initially, the sound wave didn’t respond to the slider settings, and sometimes it would simply glide right through the colored stars instead of pushing them away.

0
0
38
Open comments for this post

4h 48m 14s logged

I’ve continued developing my project; there is now a proper shockwave that can be used to blast away the stars. Creating the shockwave itself only took about three hours, but the tricky part was splitting it into different rings. Right now, I have just one ring that actually pushes the stars away, while the other fingers are there purely for visual effect. It was actually quite difficult to implement, though, because at one point I ended up with a situation where either none of them did anything or all the rings pushed the stars away.

0
0
4
Open comments for this post

4h 49m 39s logged

I am developing “starsimulation.” Once it is finished, the program will allow you to click anywhere on the screen, triggering a shockwave that pushes the stars aside. So far, I have added the stars and ensured they make a bit of room around the mouse cursor. I struggled quite a bit to get the stars to spawn in different positions each time, rather than always appearing in the same spot.

0
0
12

Followers

Loading…