Inspiration

I'm a developer, so I spend most of my waking hours looking at a monitor. That's true not only during work, but also after work, when I spend time on personal projects.

While staring at my monitor and thinking about what I should build for this hackathon, an aquarium suddenly came to mind. I wondered what would happen if I turned that random thought into an actual project.

What it does

Desktop Aquarium literally turns your desktop into an aquarium. But instead of being a screensaver or something that only appears when the computer is idle, the aquarium stays alive while you continue working on a constantly changing desktop.

When you launch the feeder from the desktop, it appears on the screen. You can pick it up, shake it to drop food, and the fish will come over to eat.

Fish can also swim in front of application windows or hide behind them. Sometimes they even mistake your mouse cursor for food and show interest in it.

How we built it

To create an aquarium that stays alive directly on the desktop, I needed deeper interaction with the operating system than I would in a typical application.

Because Linux and Windows would require different stacks and approaches, I decided to narrow the scope and focus on Windows first. I built the project mainly with .NET and Win32 APIs, with the initial goal of making the experience work reliably on Windows.

Narrowing the scope this way happened naturally while going through the Devpost Learn Skill Pack setup process.

Challenges we ran into

Surprisingly, the code and technical stack were not the hardest part. The most frustrating challenge was deciding how the fish should actually look.

At first, I used a pixel-art style that felt more like a game, but I thought it looked a little dull and did not bring enough life to the screen. I then used ChatGPT to experiment with more colorful and varied artwork, which involved a lot of trial and error. Some outputs were simply wrong — at one point, a goldfish even came back with something that looked like a dog's nose.

I also ran into problems when giving the generated sprite sheet to the agent. Some sprites were cut incorrectly, which clipped parts of the fish or included pieces of neighboring assets.

I eventually solved this by moving away from fixed rectangular cuts and handling each sprite region more carefully.

Accomplishments that we're proud of

What I'm most satisfied with is the project idea itself.

It started as a random thought, but after building the contest version, I kept thinking of more possibilities for it. I now want to continue developing and expanding the project even after the hackathon.

What we learned

To be honest, I wouldn't say that I learned a completely new technical stack during this project.

What stood out more was thinking again about how agents use skills and how those skills should be structured. Going through the initial setup step by step reminded me how important it is to define the scope and boundaries of an agent's work before asking it to start building.

What's next for Desktop Aquarium

I'm currently planning to release the project on Steam.

I want to expand the interactions and events, and also build a more extensible modding environment so users can create and use their own custom content.

If possible, I'd also like to draw the assets for the full release myself. I don't think I'm especially talented at drawing, but it's something I'd like to keep practicing in my spare time.

Built With

Share this project:

Updates

Submission history