Skip to main content

New Year's Fireworks Simulator in your Terminal

At your desk for New Years? Crack open a beer and a terminal. Run this app, and wait for the fireworks!

Pythonistas, run the following (requires uv):

uvx ny2026@latest

JS fans, run the following:

npx @manzt/uv tool run ny2026

You can also press SPACE if you are impatient for the fireworks to start...

Screenshot 2025-12-28 at 21 42 21

How this was built

This project was built with Toad and Claude Code.

It was an excercise in "vibe coding". Something I hadn't done a great deal of.

Could I have done this "by hand"? Yeah, probably. I am an ex game developer and I work with terminals. Claude one-shotted much of this. But it did create bugs that it couldn't fix, and I had to use my fleshy mammalian brain to resolve. It really struggled with the audio. There were many rounds of "I see the problem! There it is fixed now", but it did eventually get there.

There was also a last minute bug reported by another mamallian brain. It was using UTC for the countdown, which would have made it wrong for anyhone outside the UK.

Of course I should have checked, but I kind of feel that a human would be less likely to make that mistake. If you actually had to type UTC in the code, that should have triggered the realization that it would break for other timezones.

Overall, the coad is not bad. Not good, but not terrible. There are some lines which I don't think are even neccesary. Reminants of failed experiments perhaps. I suspect Claude could easily tidy those up, but you do need to know to ask.

Considering there isn't a large corpus of firework simulations with braille characters in the terminal (I assume), I think Claude did OK here.

Anyhow. These videos represent a snapshot of the process.

https://github.com/user-attachments/assets/165d8aca-2f2f-4bfd-802d-5f8c33b0d0c3

https://github.com/user-attachments/assets/4a69c8ef-676d-487f-92c9-556ae907d4d9

Metadata

Release files for ny2026 1.0.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ny2026 1.0.13
File Size Uploaded Provenance
ny2026-1.0.13.tar.gz 14.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ny2026 1.0.13
File Interpreter ABI Platform
ny2026-1.0.13-py3-none-any.whl Python 3 none any Details

Total release size: 35.4 kB

Release files / ny2026-1.0.13.tar.gz

Download URL ny2026-1.0.13.tar.gz
Size 14.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f22daae916d422bbcfccfe5c673bb9efda164c0d0aecb63e235187e870420649
BLAKE2b-256 checksum
How to use checksums
484b72c3fee7e27cf10f704b1579c96235629df80f799a4194c4b73e1f50e3e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / ny2026-1.0.13-py3-none-any.whl

Download URL ny2026-1.0.13-py3-none-any.whl
Size 20.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
85315956acdc803327c5e02bdcd06238af65ca23dad4d4c918194ad9c95fa5c4
BLAKE2b-256 checksum
How to use checksums
07c39567018688efca73254e57113b5b4db3459ae728b9d53eb1c8cbed4b77e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for ny2026 1.0.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page