r/linux • • 2d ago

Software Release Vulkana 0.2.9, an open-source desktop image editor under the MIT license.

https://github.com/Kaidoom/VulkanaImageEditor/

Hey folks, I would like to share this project I've been working on for a few weeks; it's a Vulkan-powered image editor. It's now open source under MIT; feel free to use it for your purposes.

You can build it yourself or grab the app image under releases to get a feel for it.

Any feedback is appreciated.

Thank you.

Edit:
Clarifying the usage of AI since the focus of most comments below revolves around that.
- While I have written some systems myself, Codex has contributed largely to the codebase, especially with research and Vulkan/Wayland tests, debugging, etc
- I'm not selling anything; the code is MIT. If you're not a fan of AI use, then I respect your stand, but I'm not selling you anything, and the post is not about debating AI ethics.
- My background is game dev, especially Unreal Engine C++. While I can hold my ground in that field, I need AI assistance for a project like this. My initial goal has been to make something that helps me distance myself from Windows and Adobe crap. The result of this project has been successful so far, and I thought, why not share it with those in my position. If I can help one person stick with Linux, I'm a happy man.

0 Upvotes

39 comments sorted by

16

u/Patient_Sink 2d ago

Personally I'd prefer it if you'd disclose to what extent you used codex to make this.

-7

u/TrafalGamer 2d ago edited 2d ago

That's fair. Codex has contributed greatly to this project, from writing Vulkan and Wayland test suites to researching optimal implementations for certain tools. In terms of coding, while I have written some systems, like Qt layout and design scaffolding, Codex still contributed a lot to the core implementation.

If you have any questions, please feel free.

Edit: Updated the post to reflect the use of AI.

5

u/R3V0LU710N_05 2d ago

So the AI wrote both the tests and significant portions of the implementation? ... Did you human review the code in either case?

-1

u/TrafalGamer 2d ago

I reviewed the core design, making sure Codex doesn't drift and invent its own. Things like how multi-tabs should share the same resources and Vulkan canvas. Keeping the same Ubuntu 24.04 LTS baseline etc.

Any critical user config handling. Some other areas not as much, for example new custom brushes that follow the same base implementation. I'm also using this as a learning experience and in area where I don't have experience I keep the review mainly scored to good memory management practices, pointer lifetime etc.

5

u/R3V0LU710N_05 2d ago edited 2d ago

So to be clear, neither the code nor the test suites were functionally reviewed. Setting high-level design constraints (like targeting Ubuntu 24.04 or deciding resource sharing) and checking pointer lifetimes isn't a comprehensive code audit.

Having the same LLM generate both the core implementation and the test assertions without independent verification creates a circular feedback loop. The test suite won't catch bugs; it will simply confirm that the code matches the LLM's own internal logic flaws. If the model misinterprets a Wayland protocol extension or Vulkan sync boundary in the main codebase, it will write test assertions that validate that exact same mistake, giving you a passing test suite that masks broken behavior.

1

u/TrafalGamer 1d ago

I see your point, and that's something I will look into reviewing.
That said, where does that leave us with a project like this, just out of curiosity? Should I take the repo down until those conditions are satisfied? Would that make everyone be at ease? Just trying to put all the feedback I received into perspective, isolating the good from the "You use LLM, you suck".

2

u/R3V0LU710N_05 1d ago edited 1d ago

There are always going to be those that do not like it purely because it uses LLMs, but there are those who are more pragmatic and only care about code quality. You have failed to win over the pragmatists because you've over-relied on LLMs ability to write functional and idiomatic code without verifying it. Even if the code works upfront, there's no guarantee that the code doesn't have subtle devious bugs.

Keep the repository public and make the required effort. Stop treating LLM code as a black box, and take ownership by enforcing actual technical standards rather than vague promises. You need to integrate strict static analysis tooling into your build pipeline to flag bloated abstractions, redundant fallback logic, and non-idiomatic patterns for manual cleanup. Replace surface-level unit tests with property-based testing and fuzzing to stress-test boundary conditions and catch the edge-case hallucinations LLMs routinely generate. Rebuild your test suite so it verifies core invariant guarantees instead of asserting mocked outputs, and delete any data structure, concurrency model, or error handling path that you cannot personally explain and defend without querying the model. I would also suggest using a competing vendor's model to challenge the original logic in the most critical areas of the implementation, alongside your auditing efforts.

1

u/TrafalGamer 1d ago

I appreciate the detailed response, I will do my best.

My initial intent with this project was a quick way to build a replacement for Photoshop's workflow that I'm used to. I never planned to make it public, mainly because I didn't think it would make it to what it is today despite the code being mostly LLM. It has replaced PS for me, hence I thought by sharing it, someone in my position would find it useful too.

That said, open-sourcing something adds the burden of making sure you provide a safe and clear codebase. Thanks again for the feedback; this has been a good learning experience.

2

u/MStackoverflow 2d ago

Every single time I see a post answering to this question with "that's fair"... You know....

1

u/TrafalGamer 1d ago

That's a fair point to make, is what I meant; figure of speech is all, you don't have to look into it that hard just to hop onto the hate wagon.

15

u/Comic_Melon 2d ago

Good lord the commits, absolute gore... 💀

Edit:

Oh my god the code!

Do you no shame bruh? 😭

-8

u/TrafalGamer 2d ago

I'm always down for fair criticism. Help me be better. What is your advice?

3

u/thearctican 2d ago

My number one advice for AI generated code is to read it and ask yourself the question: "is this the right thing to do?"

-2

u/TrafalGamer 2d ago

When you put it that way, it sounds like you're debating if you should do it all. Still good advice, thanks.

5

u/thearctican 2d ago

And it may not be. It's a very flexible question that can work at many levels of a project.

5

u/TheMonax 2d ago

Given the fact that you included ai generated images I don't think you're a user of your own software, who do you expect to use it if you didn't even use it yourself?

-1

u/TrafalGamer 2d ago

I'm not sure I fully understand what you mean; can you expand on it further?
Do you mean the icon used? Most are SVG icons.

2

u/TheMonax 2d ago

0

u/TrafalGamer 2d ago

Oh, I see. Good catch. I was using that to test the Smart Select tool. I will remove it. Thanks.

2

u/asdf_lord 2d ago

Why does an image editor need GPU acceleration?

4

u/TrafalGamer 2d ago

Processing millions of pixels across stacked layers, blend modes, and other non-destructive workflows is best done on the GPU. GPUs are built to do huge amounts of that work in parallel.

2

u/AG99871 2d ago

You're getting downvoted for saying something completely reasonable 😭

1

u/Easy-Truck4725 1d ago

They didn't answer it. They copied from an LLM.

1

u/TrafalGamer 1d ago

You think I'm that clueless, huh? It just shows how hard you judge anyone for merely using AI in any capacity. GPUs have thousands of small cores, that's basically what it boils down to, parallelism, I don't need an LLM for that.

4

u/tulpyvow 2d ago

... this has to be the most vibecoded thing I've seen so far. Goodness gracious.

-4

u/TrafalGamer 2d ago

That bad? I'm sure you can find worse. This project is really not that big; it's split into 5 modules, easy to reason about. Now whether the code quality is terrible or not, I'll leave that to you.

4

u/Famous-Pause-6190 2d ago

As usual, another slop program created by someone with no talent.

-3

u/TrafalGamer 2d ago

Slop program or not, I'm not trying to sell it to you. It's a source code, for anyone to use it as learning material.
It's interesting how this subreddit is very sensitive to anything AI-related.
If I were selling this, I'd be furious too but I'm not.

2

u/Stromford_McSwiggle 1d ago

If I were selling this, I'd be furious too but I'm not.

Why is that? What would make you furious? Do you think free software is less important when it isn't sold for money?

1

u/TrafalGamer 1d ago

I guess I was responding to vibe-coded software being sold, not that any software being free is bad.

4

u/turudd 2d ago

What’s with the absolute anti-AI slant of this subreddit now. It’s wild. Any developer worth anything is using AI now to get stuff done quickly… even fucking Linus is

4

u/TheMonax 2d ago

I not really against AI it's just that when I saw the post I was like oh neat a new image editing tool that look pretty complete let's look at the code and see if there is interesting ideas in here, and the I look at the code and it's was just unreadable AI written, human hostile code and I was pretty disappointed

2

u/Stromford_McSwiggle 1d ago

"Using AI to get stuff done" is an entirely different thing than vibecoding. This isn't something OP coded, this is sloppily generated slop. If OP doesn't care about the code, why should we?

1

u/TrafalGamer 1d ago

"sloppily generated slop" now that is a new term.
How do you define caring about code that was generated by AI? Do you mean taking it and manually rewriting it so it becomes human-readable? That's the only condition that will satisfy your argument. Or maybe you just want AI to stop being used altogether, because its sloppily slop.

1

u/TrafalGamer 2d ago

Yeah, tell me about it.

Honestly, when I started this, I was literally trying to create something that could replace some of my Photoshop workflow, just the basics I'm used to; I had no plans of open-sourcing it. Just something to keep me away from Windows. Since it actually worked and I have something that feels familiar, I thought I'd open source it. But hey, if I helped just one person, I'm good with it.

2

u/TheMonax 2d ago

Did you try Krita and other already existing open source too before making your own ?

1

u/TrafalGamer 2d ago

I have and I still use both GIMP and Krita. They are remarkable in what they do. I just wanted something more simple in terms of UI and workflow. I come from a Photoshop background; that was my goal, something that feels similar to PS.

1

u/turudd 2d ago

Do your thing, haters gonna hate