Chart of the day: ๐ฆ๐จ๐๐ž๐ฅ ๐ฎ๐ฌ๐š๐ ๐ž ๐ข๐ง ๐’๐ž๐ฉ๐ญ๐ž๐ฆ๐›๐ž๐ซ

Written by  on September 30, 2026

This shows a breakdown of the currently ending month of September (in 2026). Which models were used, with vendor and #tokens burned, and an estimate of what this usage would have cost via the API (most of it was covered by subscriptions). As you can see, it is a mix of the top dogs of the Western hemisphere as well as self-hosted #Qwen-based #Ollama runs. Since for self-hosting I could only make up numbers for the dollar value, I kept it with no mapping at all, just show the token usage as number.

The screenshot shows a small part of tokenUsage2 – which is a TUI tool I developed some weeks ago to break down token usage with ad hoc charts. Updated every few milliseconds. Not like the HTML generator I showed some weeks ago. ๐€๐ ๐ž๐ง๐ญ๐ข๐œ ๐ฐ๐จ๐ซ๐ค๐Ÿ๐ฅ๐จ๐ฐ๐ฌ are fun – but you also need the ๐œ๐จ๐ฆ๐ฉ๐ฎ๐ญ๐ž to get them done. And some ๐จ๐ซ๐œ๐ก๐ž๐ฌ๐ญ๐ซ๐š๐ญ๐ข๐จ๐ง skill.

Find it on GitHub. I’ll spare you the URL here, since I know that almost nobody clicks the outbound URLs ๐Ÿ˜‰

๐–๐ก๐š๐ญ ๐š๐ซ๐ž ๐ฒ๐จ๐ฎ๐ซ ๐ง๐ฎ๐ฆ๐›๐ž๐ซ๐ฌ? ๐‚๐š๐ซ๐ž ๐ญ๐จ ๐ฌ๐ก๐š๐ซ๐ž?

#anthropic #openai #codex #claudecode #agenticengineering

#

Written by  on September 27, 2026

Last week I saw here on LI a post by a father where his 9-year-old son created his own Minecraft clone with agentic AI. Even for the love of the gods, I can’t remember who it was. (If someone knows, ping me.)

While reading, I thought: wonder how much the father helped. And Minecraft is so popular. Even with tons of mods, this is a well-documented topic.

Yesterday, between breakfast and getting ready for an excursion, I asked my oldest child if she wants to create her own game and has ideas. Yes… she said… I wasn’t even ready with preparing a repository when she already went on and on and on… and I thought, omg, this will not work out. What have I stirred up? ๐Ÿซฃ

One hour of chores later, we returned. And it was playable. A friendly, colorful cat adventure. With reward mechanisms. Great :3

My only input was my “dark factory prompt” and that it shall use Babylon.js (good experiences with that for 3D graphics in the browser). The rest was done by a slightly overexcited product manager and AI โ„ข

Outcomes:
* I overestimate my necessary input for agentic AI
* I can’t publish a fully working and polished game, because it is hers
* only our inspiration is the limit

 

๐‚๐ฅ๐š๐ฎ๐๐ž /๐ข๐ง๐ข๐ญ – ๐ฎ๐ฌ๐ž๐ฅ๐ž๐ฌ๐ฌ!?

Written by  on September 25, 2026

Last week I attended an ๐ข๐ฅ๐ฅ๐ฎ๐ฆ๐ข๐ง๐š๐ญ๐ข๐ง๐  ๐ฐ๐จ๐ซ๐ค๐ฌ๐ก๐จ๐ฉ by Zartis, which brought knowledge about Claude Code and, on the other hand, the chance for networking. My table neighbours and I helped each other with some challenges, and then the question came up: does the /init command actually help? The common understanding, because it is advertised like this: yes. If you have a legacy project and want to give the agent a head start. ๐๐ฎ๐ญ ๐ก๐š๐ฌ ๐š๐ง๐ฒ๐จ๐ง๐ž ๐ž๐ฏ๐ž๐ซ ๐ฆ๐ž๐š๐ฌ๐ฎ๐ซ๐ž๐?

I did some checks on available research on the fly. But the outcome was ambiguous.

Therefore, here is now the summary of ๐ฆ๐ฒ ๐ฆ๐ž๐ญ๐š-๐ฌ๐ญ๐ฎ๐๐ฒ: as a 5-page carousel. I’ll add a ๐ญ๐ก๐ซ๐ž๐ž๐ฉ๐š๐ ๐žr ๐ฐ๐ก๐ข๐ญ๐ž๐ฉ๐š๐ฉ๐ž๐ซ ๐š๐ฌ ๐ญ๐ก๐ž ๐Ÿ๐ข๐ซ๐ฌ๐ญ ๐œ๐จ๐ฆ๐ฆ๐ž๐ง๐ญ. AI-co-authored, of course, but I spent several sessions checking different angles and the six publicly findable studies.

๐Ž๐ฎ๐ญ๐œ๐จ๐ฆ๐ž๐ฌ:
* no reliable gain!
* it costs more: 20% per task in the ETH Zurich study
* random rules score as well as expert ones: so you don’t need to give someone their comment <– check: commit to get their master claude.md ๐Ÿ˜‰
* rules get followed and named tools are used more often
* writing down the agent’s mistakes worked: especially for smaller (35B) models – self-hosters, listen up
* agents.md/claude.md files only grow, almost never shrink!

And I find this underlines my view. ๐“๐ก๐ž ๐Ÿ๐ข๐ž๐ฅ๐ ๐ฆ๐จ๐ฏ๐ž๐ฌ ๐ฌ๐จ ๐Ÿ๐š๐ฌ๐ญ ๐ญ๐ก๐š๐ญ ๐š ๐ฅ๐จ๐ญ ๐จ๐Ÿ ๐ฌ๐จ๐ฅ๐ ๐ญ๐ซ๐ฎ๐ญ๐ก๐ฌ ๐š๐ซ๐ž ๐›๐š๐ฌ๐ž๐ ๐จ๐ง ๐ฌ๐ฎ๐›๐ฃ๐ž๐œ๐ญ๐ข๐ฏ๐ž ๐ž๐ฑ๐ฉ๐ž๐ซ๐ข๐ž๐ง๐œ๐ž๐ฌ.

I personally almost never used the /init command ..

carousel:ย LI

whitepaper:ย paper

๐€๐ ๐ž๐ง๐ญ๐–๐ก๐ข๐ฅ๐ž๐“๐ซ๐ฎ๐ž has got the ๐ฐ๐ก๐ข๐ฉ now!

Written by  on September 24, 2026

A decade ago whip apps for your favorite smartphone were the hit. Using the acceleration sensor, they played a whipping sound when you made the movement while holding your phone. A team lead at that time jokingly always used it (nobody was harmed …).

Poetic afflatus: why not add this to Agent While True? It is a machine talking to other machines (means: agentic harnesses in some terminals).
And here it is: with a simple press of ๐– you’ll unleash hell.
A selection of twenty comments in the style of ๐“๐ก๐ž ๐Ž๐Ÿ๐Ÿ๐ข๐œ๐ž/๐’๐ญ๐ซ๐จ๐ฆ๐›๐ž๐ซ๐  are sent via #DBus to the open sessions of #ClaudeCode or #CodexCLI that have work left. And you see a nice cracking animation (#ASCII of course).

๐ƒ๐ข๐ฌ๐œ๐ฅ๐š๐ข๐ฆ๐ž๐ซ: just because I have added this fun-feature to the TUI does not mean I endorse questionable motivational methods or intimidation. A workplace, like every professional and human interaction, should be based on respect!

To address the HR-fellows: how do you like that new feature? ๐Ÿ˜‰

 

Release: ๐€๐ ๐ž๐ง๐ญ ๐–๐ก๐ข๐ฅ๐ž ๐“๐ซ๐ฎ๐ž

Written by  on September 21, 2026

Imagine you are doing a ๐›๐š๐ซ๐›๐ž๐œ๐ฎ๐ž with your friends, but there is also a heavy #agentic software-engineering task going on and you know you’ll run out of budget in 10 minutes, but the window will reset in an hour.
What now?
Slip away from the party to enter “continue” in a terminal (and “get it all done and make no mistakes, haha”) or wait until the guests have left?

Agent While True to the rescue. A #Linux system-service for #KDE environments, written in #Python with zero dependencies, together with a nice #TUI (includes a ๐‚๐†๐€ graphic-mode theme for nostalgic reasons).
It will auto-discover and track all your running #Codex CLI and #Claude Code sessions and, when necessary, resume the pending session in terminal whenever it is waiting with “you ran out of budget, do you want to upgrade or wait”.

Actually, I started the implementation fourteen days ago. Quite naively, I thought: this is solved within 24 hours ๐Ÿ™ˆ. Getting the software done was less of a challenge; ๐ฎ๐ง๐๐ž๐ซ๐ฌ๐ญ๐š๐ง๐๐ข๐ง๐  all the ๐œ๐จ๐ง๐ฌ๐ญ๐ซ๐š๐ข๐ง๐ญ๐ฌ and what states are possible with both agentic systems, while working in a moving-target environment (thanks @Anthropic and @OpenAI), took some time. Of course, you can simulate and test “ran out of budget” and the subsequent 5-hour/weekly reset, but only the real situation gives you proof that AWT works. So it took some nights to get it right.

Code under GPLv3, REUSE-compliant, SPDX-compliant, SBOMs for CycloneDX and SPDX, GitHub Actions for releases, yada yada.
Fork and have fun: https://github.com/marcelpetrick/AgentWhileTrue

๐๐ฐ๐ž๐ง-๐ˆ๐ฆ๐š๐ ๐ž ๐Ÿ.๐Ÿ lokal getestet

Written by  on September 20, 2026

Passend zum Wiesn-Start und weil heute der Feed voll mit dem neuen Release ist, habe ich mir auch ein paar Minuten zwecks Setup und Test gegรถnnt. (Falls mich jemand auf den Bildern erkennen kann, bitte kommentieren – ich finde nicht ๐Ÿ˜…)
#ComfyUI lag sowieso lokal vor; nur den neuesten Stand gepullt; Migration; bereit zum Rendern.
Die Orchestrierung รผber #ClaudeCode laufen lassen – keine Lust, die Workflows selber zu erstellen und zu pflegen. Per Sprachnotiz kurz beschrieben, wie viele Bilder welcher Auflรถsung ich gern hรคtte, dann Abendbrot vorbereitet. Aus der Ferne hรถrte man aber auf einmal die Lรผfter ..

Ich weiss nicht, ob das fรผr meine Zwecke ein Fortschritt ist. Also ich bin jetzt nicht hype-begeistert wie andere, welche ebenfalls heute einen Testlauf machten. Mit #Flux-Klein und Konsorten kam ich bisher recht weit. Fรผr Illustrationen reichten sie als lokale Modelle.
Auch durch die Verwendung von Referenzbildern (bis zu drei) wurden gefรผhlt die Ergebnisse schlechter als bei rein textuellem Prompt.

Aktuell unklar, wie verwertbar das Ganze durch die Lizenz ist: “Qwen Research โ€” non-commercial only”, vorher “Apache-2.0”

Da von 512×512 รผber 1024×1024 bis 20248ยฒ Pixel alles gerendert werden kann, lief hier auch ein kurzer Benchmark: am besten kam ich hier mit 1024ยฒ Pixel Bildern bei 4 bis 10 Minuten aus.

### 3.1 Wall clock per image


smoke 01-visor 15.3s โ–ˆ
mp-01-wiesn 237.1s โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
01-visor-reflection 243.1s โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
05-nebula-scale 246.9s โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
04-mission-poster 247.2s โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
02-hull-typography 247.3s โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
03-glove-texture 247.4s โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
bavaria-02-golden 398.2s โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
2K probe (hull) 433.0s โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
bavaria-01-daylight 663.0s โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
0 663s

ABANDONED
2K @ 30 steps >1879s โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ถ
killed at step 19/30, still slowing

### 3.2 Cost per step by resolution


512ยฒ 1.91 s/step โ–ˆโ–ˆ
1024ยฒ 8.21 s/step โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
2048ยฒ 54.16 s/step โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
0 55 s

### 3.3 Cost per step by machine state โ€” identical work


warm, 22 GB cache, no swap 8.2 s/step โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
cache re-warming, 5.7 GB swap 13.3 s/step โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
cold, cache evicted, swapping 22.1 s/step โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
0 22 s

### 4.3 Resolution scaling turns superlinear past 1024ยฒ

| Step up | Pixels | Time | Behaviour |
|—|—|—|—|
| 512ยฒ โ†’ 1024ยฒ | 4ร— | 4.3ร— | ~linear |
| 1024ยฒ โ†’ 2048ยฒ | 4ร— | 6.6ร— | superlinear โ€” quadratic attention appearing |

๐ƒ๐š๐ฒ ๐จ๐ง๐ž: ๐Ÿ๐จ๐ฎ๐ซ ๐ฐ๐ž๐š๐ฉ๐จ๐ง๐ฌ. ๐ƒ๐š๐ฒ ๐Ÿ๐ข๐ฏ๐ž: ๐ฌ๐ž๐ฏ๐ž๐ง๐ญ๐ž๐ž๐ง.

Written by  on September 19, 2026

I’ve continued the work on my browser-based game ๐€๐ฅ๐ฅ๐ข๐ฎ๐ฆ ๐€๐ฌ๐ฌ๐š๐ฎ๐ฅ๐ญ. Over the past 5 days and additional 99 commits I’ve turned the minimal prototype into a fully usable game.
๐ญ๐ฅ;๐๐ซ: you can play it without any installation for free on GitHub Pages: https://marcelpetrick.github.io/AlliumAssault/

It is still a turn-based 3D artillery game with ๐ ๐š๐ซ๐ฅ๐ข๐œ ๐›๐ฎ๐๐๐ข๐ž๐ฌ ๐Ÿง„ in the spirit of Worms 2. I had lots of fun with friends thanks to the guys from @Team17.
Adding the new weapons was more than just creating a new sprite for the button – playtesting turned out to be crucial. A ๐˜ฃ๐˜ข๐˜ฏ๐˜ข๐˜ฏ๐˜ข ๐˜ฃ๐˜ฐ๐˜ฎ๐˜ฃ acts a bit differently from a ๐˜ฃ๐˜ข๐˜ด๐˜ฆ๐˜ฃ๐˜ข๐˜ญ๐˜ญ ๐˜ฃ๐˜ข๐˜ต. And as you know, ๐˜ด๐˜ฉ๐˜ฆ๐˜ฆ๐˜ฑ and ๐˜ด๐˜ถ๐˜ฑ๐˜ฆ๐˜ณ ๐˜ด๐˜ฉ๐˜ฆ๐˜ฆ๐˜ฑ share only part of the name, but not their behaviour.
Since doing repeated tests would be boring, I added 17 E2E tests with ๐๐ฅ๐š๐ฒ๐ฐ๐ซ๐ข๐ ๐ก๐ญ to get this done.

Also, I’ve done one profiling run and then decided to remove multisampling, which saved around 40% of the cost per frame with almost no quality loss. And, of course, the major improvement – each push now runs ๐‚๐ˆ ๐ฏ๐ข๐š ๐†๐ข๐ญ๐‡๐ฎ๐› ๐€๐œ๐ญ๐ข๐จ๐ง๐ฌ, which automatically deploys to GitHub Pages. And this allows you to run it without any changes from any browser (also tested on a smartphone, but it still lacks “no keyboard” controls).

I have some more ideas in mind. Also, I hesitated until now to add a rope as a weapon, because its functionality is an easy way to introduce a load of bugs.

And if someone is interested: the repository now contains almost ๐Ÿ๐Ÿ๐ค ๐‹๐จ๐‚ ๐จ๐Ÿ ๐“๐ฒ๐ฉ๐ž๐’๐œ๐ซ๐ข๐ฉ๐ญ in 118 commits, 115 tests, a C4 documentation, CI for quality assurance and releases, …

So, spend the Sunday wisely: go to https://marcelpetrick.github.io/AlliumAssault/ and give it a try ๐Ÿ‘

#worms2 #wormsarmageddon #team17 #typescript #sdlc #AlliumAssault

 

 

๐‹๐•๐†๐‹ ๐Ÿ—.๐Ÿ”? -> Upgrade the Coffee Dispenser demo

Written by  on September 18, 2026

Triggered by Lukas Kosinski’s like for the post about the LVGL 9.6 release (the last before version 10) today, I thought: let’s dust off the LVGL-coffee-dispenser-demo I did four months ago (๐˜ฎ๐˜ข๐˜ฏ, ๐˜ต๐˜ฆ๐˜ฎ๐˜ฑ๐˜ถ๐˜ด ๐˜ง๐˜ถ๐˜จ๐˜ช๐˜ต…) and see if the performance of the software renderer really improved.

How to determine this? Of course: ๐ฉ๐ซ๐จ๐Ÿ๐ข๐ฅ๐ข๐ง๐ .

Added a harness for the benchmark, did some runs with the current state and documented them.

Then did the version bump (๐ฌ๐ฎ๐ซ๐ฉ๐ซ๐ข๐ฌ๐ข๐ง๐ ๐ฅ๐ฒ ๐ž๐Ÿ๐Ÿ๐จ๐ซ๐ญ๐ฅ๐ž๐ฌ๐ฌ โ€” only a one-liner in a header had to be changed aside from the submodule update). Clean, rebuild, run the profiling again and compare.
The first results were not really impressive – a meagre ๐Ÿ”% improvement. Not the claimed 1.33ร— from the LVGL creators.
On ๐ซ๐ž๐ฏ๐ข๐ž๐ฐ later, the culprit was found and fixed: the benchmark’s own redraw path invalidated too much of the active screen. With a new run, I now see a ๐Ÿ๐Ÿ“% ๐ฉ๐ž๐ซ๐Ÿ๐จ๐ซ๐ฆ๐š๐ง๐œ๐ž ๐ข๐ฆ๐ฉ๐ซ๐จ๐ฏ๐ž๐ฆ๐ž๐ง๐ญ ๐Ÿ๐จ๐ซ ๐ฌ๐จ๐Ÿ๐ญ๐ฐ๐š๐ซ๐ž ๐ซ๐ž๐ง๐๐ž๐ซ๐ข๐ง๐ .

Well done, LVGL team ๐ŸŽ‰

Code, measurements on GitHub: https://github.com/marcelpetrick/LVGL_coffeeDispenser as always feel free to fork

Early preview: ๐€๐ฅ๐ฅ๐ข๐ฎ๐ฆ ๐€๐ฌ๐ฌ๐š๐ฎ๐ฅ๐ญ ๐Ÿง„

Written by  on September 16, 2026

Not much time to write posts these days. But, of course, the grind never stops.

My most recent creation is Allium Assault, a ๐–๐จ๐ซ๐ฆ๐ฌ clone. With that said, I guess I don’t have to explain the game principle in detail. Two or more teams of garlic buddies fight each other with bazookas, grenades, … on a generated landscape. A ๐Ÿ๐ฎ๐ฅ๐ฅ๐ฒ ๐๐ž๐ฌ๐ญ๐ซ๐ฎ๐œ๐ญ๐ข๐›๐ฅ๐ž ๐ฅ๐š๐ง๐๐ฌ๐œ๐š๐ฉ๐ž plus gravity, wind, and turn-based gameplay.

I plan to add way more features as soon as possible. The first show-and-test with the stakeholders has already elicited some giggles from them.

Tech stack: ๐๐š๐›๐ฒ๐ฅ๐จ๐ง.๐ฃ๐ฌ renders the gameโ€”never used it before, but this was the first time I was able to create a satisfying 3D landscape in the browser. TypeScript, Vite, … Vitest and Playwright for test support. Sound effects are currently generated by the Web Audio API, since I did not want to spend much time looking for samples.

Hosted as always on ๐†๐ข๐ญ๐‡๐ฎ๐›: if you want to fork or play it: https://github.com/marcelpetrick/AlliumAssault

 

#

Written by  on September 11, 2026

Yesterday while driving to work, I was thinking: shouldn’t it be possible to use modern #CMake to handle what we usually do with a #Git submodule?

So, let’s turn that idea into a working prototype and test it in practice.

For this example, CMake ๐…๐ž๐ญ๐œ๐ก๐‚๐จ๐ง๐ญ๐ž๐ง๐ญ is used instead of a Git submodule to provide #LVGL for a minimal demo application.

๐“๐ก๐ž ๐๐ž๐ฉ๐ž๐ง๐๐ž๐ง๐œ๐ฒ ๐๐ข๐ ๐ง๐จ๐ญ ๐๐ข๐ฌ๐š๐ฉ๐ฉ๐ž๐š๐ซ. ๐Ž๐ฐ๐ง๐ž๐ซ๐ฌ๐ก๐ข๐ฉ ๐จ๐Ÿ ๐๐ž๐ฉ๐ž๐ง๐๐ž๐ง๐œ๐ฒ ๐š๐œ๐ช๐ฎ๐ข๐ฌ๐ข๐ญ๐ข๐จ๐ง ๐ฆ๐จ๐ฏ๐ž๐ ๐Ÿ๐ซ๐จ๐ฆ ๐ญ๐ก๐ž ๐†๐ข๐ญ ๐œ๐ก๐ž๐œ๐ค๐จ๐ฎ๐ญ ๐ฆ๐จ๐๐ž๐ฅ ๐ญ๐จ ๐ญ๐ก๐ž ๐‚๐Œ๐š๐ค๐ž ๐œ๐จ๐ง๐Ÿ๐ข๐ ๐ฎ๐ซ๐ž ๐ฆ๐จ๐๐ž๐ฅ.

๐˜ž๐˜ฉ๐˜ข๐˜ต ๐˜ช๐˜ด ๐˜ข๐˜ค๐˜ต๐˜ถ๐˜ข๐˜ญ๐˜ญ๐˜บ ๐˜ค๐˜ฉ๐˜ข๐˜ฏ๐˜จ๐˜ช๐˜ฏ๐˜จ?
* the VCS structure: LVGL is no longer part of the parent repository as a Git submodule
* the physical layout: the dependency moves from the source tree into the build tree
* the control: CMake declares the requested LVGL revision
* build graph: no ๐Ÿ˜‰ this is almost unchanged โ€” LVGL is still compiled and linked as a normal target

So, CMake does not replace Git. Git is still needed, but it is now invoked by CMake during configuration instead of being handled upfront by the developer.

The example can be found on GitHub: https://github.com/marcelpetrick/codingWithGPT/tree/master/cmakeFetchContentVersusGitSubmodule

Thank you for your attention ๐Ÿ™