Show HN: I built an offline, open‑source desktop Pixel Art Editor in Python
github.comIt requires no registration, no installation, and no configuration. Just run it on any computer and start drawing freely.
It requires no registration, no installation, and no configuration. Just run it on any computer and start drawing freely.
Very nice to see that this project is hand-crafted and not AI-generated like 99% of the submissions here
So, congrats on your release.
When I clicked I already thought about the comments that ask "is this vibe coded". So I kind of asked myself that question. As someone who manually codes as well as experiments with AI-assisted coding I ask myself what attitude we should develop towards AI-assisted coding in the long run. Right now on HN it almost seems like "AI shaming" at work. If you post a project that's a result of using AI you can expect a lot of critique around here. While I understand that to a certain extent I guess we also need to overcome that sentiment. After all we don't blame people using IDEs, code completion or other tools that have become the norm.
If I can tell something is "vibe coded", that means it's bad. It doesn't matter what tools people use as long as the output is good. Vibe coding smells include:
1. Tons of pointless comments outlining trivial low-level behaviour,
2. No understanding of abstraction levels,
3. No real architecture at all,
4. Not DRY, no helper functions or inconsistent use of said functions across project,
5. Way too many lines of code.
None of these are shaming for use of any particular tool, they are just shaming the output.
Ok, let's better not talk about "vibe coding" because we don't really have definition of what it means. "Historically" it means "just letting the AI code without looking at its output" while I often see people that are more diligently using AI using it kind of tongue in cheek. My mistake using the expression in the latter way.
Thanks! Although I had to use it for some things (like the logo, for example, and I’m not a "graphic guy"), in the end, since it’s a simple project by design, I didn’t mind, and the result isn’t bad at all.
Genuinely why do you care?
This may not be entirely the right metaphor but I kinda see it as the difference between fast food, a top rated restaurant, and home made cooking —with fast food being AI.
Generic, does the job, not the highest quality, bleak, fast repetitious output
> There are several Pixel Art Editors that do the same things and even much more, but many require an account registration or the insertion of an e-mail or have a certain business model.
https://libresprite.github.io/
I'll throw my favourite into the ring, mtPaint: https://mtpaint.sourceforge.net/
Why, of all names possible, you thought TILF was the best one?
It’s “Tilf” not TILF, and means Tiny Elf, per the docs.
Why? What’s the problem with it?
Milf, dilf, etc
Wait till you see the image editor named after a kind of BDSM bottom.
Tile I’d Like to Fill.
I like that it really is simply built and packaged, I'm sure it was fun to hack away at. There's something about gluing together a million packages which sucks the fun out of tinkering (for me, at least).
That’s also why the project was built from scratch. The only real dependency of the project is PySide6. The icons don’t come from any package. PyInstaller is used solely for bundling purposes. As outlined in the README.md, running Tilf requires nothing more than an installed version of Python (3).
Much "an app can be a home-cooked meal" energy here. Write a program to scratch an itch. Good to see that spirit still alive.
Great project!
I have one very silly question... Why is the elf logo not pixel art? :)
Congratulations!
What made you decide to go with PySlide6?
I already have some experience with Python/PySide6, and I was mainly interested in having a working prototype as soon as possible (I’m experimenting with SDL3 and animating squares isn’t exactly thrilling!). Plus, Qt widgets integrate very well with Python, it is so easy to create a section, especially when the documentation is well written, that helps a lot. Also, with PyInstaller, the build process for each platform is fairly straightforward (although for customized icons, there are a few extra steps to take).
There are some downsides of course (like the bundle size, for example), but that's not a problem, the core idea is: double-click on Tilf and start drawing right away.
why not just the default tk widgets, might be much less of external dependencies?
I recently discovered and have been fairly happy with PixelLab - an AI pixel art generator. I feel like they have a ways to go in features and UX, but it shows promise.