▲ 1 r/ZaiGLM+1 crossposts

First time I have seen this: my model seemed aware of its context usage ask me for compaction!

I was in a middle of a Claude Code session with GLM 5.2. Context usage 537k/1M. After finishing a task, GLM asked me this:

>Context note: this session has run long and context is getting heavy. (...) I'd suggest either (a) continuing here while context allows (...), or (b) checkpointing now and continuing the remaining chapters in a fresh session (...) Your call — which would you prefer?

First time I have seen this! Usually it is me asking the model to get ready to continue its work after compaction. Nice to see the context is aware of its limits. I will have to investigate if I can find a way for it to trigger compaction on its own when it needs it.

Has anyone experienced something similar? (don't confuse it with auto-compaction)

reddit.com
u/ex-arman68 — 1 day ago

I love GLM 5.2's attitude! It is a nice refresher from those bootlicker doormats they are feeding us. Does that come from training datasets related to the local culture?

I have realised one thing I really like about GLM 5.2, apart from its capabilites and huge consistent context, is its attitude:

  • It is direct, concise, no fluff (as one infamous model likes to say)
  • It won't take shit
  • It won't sugar coat its answers, and will not blindly agree with you, like those saccharine vomit inducing US models do
  • It is focused and remains focused, carefuly avoiding any distractions you might throw at it, filing them for later with a quick heads up, and then surprisingly a few hours later, once it's done, it will come back to you with its full attention

I wonder if this comes from the difference between US culture and chinese culture. I remember noticing similar differences between european models (eg: mistral) and US models before. I would have thought the training datasets are quite similar. But maybe there is significant part of the datasets which are local culture related, and it seems to have a bigger (positive) influence than expected.

What is your experience? Why do you like it or dislike it?

reddit.com
u/ex-arman68 — 13 days ago
▲ 27 r/ZaiGLM

I love GLM 5.2's attitude! It is a nice refresher from those bootlicker doormats they are feeding us. Does that come from training datasets related to the local culture?

I have realised one thing I really like about GLM 5.2, apart from its capabilites and huge consistent context, is its attitude:

  • It is direct, concise, no fluff (as one infamous model likes to say)
  • It won't take shit
  • It won't sugar coat its answers, and will not blindly agree with you, like those saccharine vomit inducing US models do
  • It is focused and remains focused, carefuly avoiding any distractions you might throw at it, filing them for later with a quick heads up, and then surprisingly a few hours later, once it's done, it will come back to you with its full attention

I wonder if this comes from the difference between US culture and chinese culture. I remember noticing similar differences between european models (eg: mistral) and US models before. I would have thought the training datasets are quite similar. But maybe there is significant part of the datasets which are local culture related, and it seems to have a bigger (positive) influence than expected.

What is your experience? Why do you like it or dislike it?

reddit.com
u/ex-arman68 — 13 days ago

Best local model for vision - 2nd benchmark update - 21 Jun 2026

I previously posted the first results of my VLM benchmark. There were a few useful comments and observations I took into account, to revise and expand my benchmark:

  • I initially did not take into account the Gemma 4 vision budget which defaults to 280, essentially making it useless. I have increased it to maximum level, with the following optimal setttings which were posted here recently: --image-min-tokens 560 --image-max-tokens 2240
  • I used the -b 4096 -ub 4096 parameters to avoid splitting the image tokens into multiple blocks (default value is 512)
  • Switched from ollama to llama.cpp
  • I expanded my dataset from 20 to 30 images, to cover more use cases
  • I expanded the benchmark to test the impact of thinking vs non-thinking
  • The first benchmark only included Q4 quants; I expanded it to Q8 quants for small models
  • The first benchmark only tested each image once; now 3x tests per image

In total, 23 models x 30 images x 3 tests = 2,070 tests (not including failures, tunings, re-runs), 60 to 70 inference hours.

I have three recommendations this time, one per hardware tier:

VRAM tier Pick Size Score Speed
4–8 GB Qwen3.5 4B (nothink) @ Q4 3.2 GB 75.5/100 20 s/img
12–16 GB Qwen3-VL 8B @ Q8 (not Q4) 8.1 GB 74.4/100 26 s/img
24+ GB Qwen3.6 27B (nothink) @ Q4 16.9 GB 79.6/100 70 s/img

I noticed a few interesting outcomes, which I did not expect:

Thinking mode hurts vision. Every Qwen hybrid thinker scored higher with enable_thinking=false. This is because vision is perception, not reasoning. Thinking adds instability, timeouts, and empty outputs.

MoE size is misleading for vision. MoE models tie with much smaller dense models, and perform worse than equivalent dense models. It makes sense in retrospect if when you see that a MoE is a collection of small models. Their big total parameter count buys knowledge breadth, not perception depth which scales with density.

Q8 is not a guaranteed improvement. It improves Gemma 4 (more consistent, less hallucinations), cripples Qwen hybrid thinkers (they spend too long thinking, resulting in frequent timeouts). The only Q8 that's a strict win is Qwen3-VL 8B-Q8.

Here are the full quality ranking, sorted by effective score (raw × completion rate). σ = stability across 3 runs.

# Variant Quant Mode Score σ Successful Note
1 Qwen3.6 27B Q4 nothink 79.6 0.24 90/90 Champion
2 Qwen3.6 27B Q4 think 78.2 0.26 81/90 Same model, slower
3 Qwen3.6 35B-A3B Q4 nothink 76.4 0.55 90/90 MoE
4 Qwen3.5 4B Q4 nothink 75.5 0.48 90/90 Best pts/GB
5 GLM-4.6V-Flash 9B Q4 75.1 0.53 90/90 Best for chinese OCR
6 Qwen3.6 35B-A3B Q4 think 75.0 0.31 90/90 MoE
7 Gemma 4 31B Q4 74.6 0.45 90/90 Slow (93 s)
8 Qwen3-VL 8B Q8 74.4 0.33 90/90 Only perfect Q8
9 Qwen3-VL 8B Q4 73.1 0.52 90/90
10 Qwen3.5 9B Q4 nothink 73.1 0.58 90/90
11 Gemma 4 26B-A4B Q4 72.7 0.51 90/90
12 Qwen3.5 9B Q4 think 72.7 0.52 90/90
13 GLM-9B Q8 73.4 raw / 68.5 eff 0.51 84/90 Drop vs Q4
14 Qwen3.5 4B Q4 think 70.6 0.77 90/90 Unstable
15 Qwen3-VL 4B Q4 65.9 0.76 90/90 Degenerates
16 Qwen3.5 4B Q8 nothink 65.7 0.51 partial Drop vs Q4
17 Qwen3-VL 4B Q8 65.3 1.03 87/93 Worst σ
18 Gemma 4 12B Q8 76.6 raw / 59.7 eff 0.28 74/95 22% timeouts
19 Gemma 4 12B Q4 64.1 0.66 90/90 Hallucinations
20 Gemma 4 E4B Q8 63.9 0.46 78/90
21 Gemma 4 E4B Q4 58.8 0.60 90/90 Wrong counts
22 Qwen3.5 9B Q8 nothink partial ~85% fail Unusable
23 Qwen3.5 9B Q8 think partial ~60% fail Unusable

Here is bit more info about some of those models, that the above numbers cannot express, based on reading their actual output:

Qwen3.6-27B (Q4=16.9GB) : Best quality, best stability, no failures with thinking disabled. The no-thinking mode has a huge beneficial on speed, and avoids the timeouts due to reasoning too long. Gives very direct answers.

Qwen3.6-35B-A3B (Q4=21.9GB) : Based on the numbers it might appear like a good speedy alternatives, but it rarely performs better than smaller models. Biggest problem, apart from its size, is the huge variance and unpredictability of its responses. Skip it, not worth using MoE for vision.

Qwen3-VL-8B-Instruct (Q4=5.8GB Q8=8.1GB) : The only model with 100% reliability on Q8. Q8 brings big over Q4, for both quality and consistency.

Qwen3.5-4B (Q4=3.2GB) : Use with thinking disabled; when enabled, on dense images, it can easily exhaust its token budget and error, or timeout. Q8 was a lot worse than Q4, with again timeouts on dense images. None of those problems with Q4 non-thinking.

Test methodology

  • specs: Apple M2 Max, 96GB RAM
  • runtime: llama.cpp b9690 via llama-server
  • models: 11 base models, Q4_K_M; Q8_0 added for 7 of the smaller ones
  • hybrid thinking models (Qwen3.5/3.6) tested both with and without thinking enabled
  • 30 images across screenshots, photos, posters, art, medical, scientific graphs, dense scenes, and multilingual content
  • 3 runs per (model × image), median run scored
  • hybrid scoring: 40% deterministic probes (OCR, counts, hallucination checks) + 60% LLM judge based on human created detailed ground truth description for each image
  • timeout: 300s per call (fail fast on runaway thinking)

More info on Gemma 4 vision token budget

> In llama.cpp, you can configure Gemma 4's vision budget with 2 parameters --image-min-tokens and --image-max-tokens. The engine will try to fit the image within those bounds. I believe the default is 40 and 280 respectively. This is Gemma 4's default from Google's side but it's way too low.

> I like to run them at 560 and 2240 respectively and it's able to pick up very minute and hazy details within images. Why 2240 - isn't that double of the max from Google (1120)? In my testing, 2240 for some reason works better than 1120. I suspect this might be because of llama.cpp's implementation where it tries to fit the image between min and max tokens.

> Also, weirdly, 560 and 2240 was outperforming 1120 and 1120 in my testing. I suspect this is because the model is capable of more than 1120 max tokens.

Someone asked why not put both --image-min-tokens and --image-max-tokens to 1120

> This will upscale anything that is less than 1120 (~2.6M pixels). If you want the original size of the image to be maintained, ideally should provide a lower and upper bound.

Source: https://www.reddit.com/r/LocalLLaMA/comments/1srrhi5/gemma_4_vision/

reddit.com
u/ex-arman68 — 14 days ago
▲ 46 r/ZaiGLM

GLM 5.2 on z.ai is getting hammered right now, please hold back

I switched to GLM 5.2 almost as soon as The Great News came. Been glued to it since then. Eyes ready to pop. It worked great, smart like a sage, fast like a snail on speed.

This morning, starting around 8:00 CET, the "world" woke up with an insatiable hunger to give it a spin. Constant timeouts. Errors. Slow as molasse.

It is getting hammered more than a chicken breast in an Austrian kitchen.

I have decided to take a break from it, and will come back when the united attention-span-deficient crowds have moved to the next big thing. I suggest you do the same if you want to experience the full blown wonder, instead of going "Meeh...".

reddit.com
u/ex-arman68 — 21 days ago
▲ 3 r/vibecoders_+2 crossposts

Which is the best local VLM? Benchmark results June 2026

It all started because the LLM I use for coding does not have vision support. It relies on a cloud hosted MCP server for image analysis, which works well, but I keep hitting my monthly limit. So I have just started writing my own local MCP as a replacement, and the first step was finding which VLM to use.

I selected what I think are the best and latest current local VLM models, as of June 2026. If I am wrong, please let me know.

  • Gemma 4 12B
  • Gemma 4 26B-A4B (MoE)
  • Gemma 4 E4B (MoE)
  • GLM-4.6V-Flash 9B
  • InternVL3.5 8B
  • Qwen3-VL 4B
  • Qwen3-VL 8B

I also wanted to include the following 3, but I did not manage to run them on my mac:

  • Phi-4-reasoning-vision-15B (llama.cpp hasn’t implemented the phi4-siglip vision architecture yet)
  • DeepSeek-VL2 (no working multimodal GGUF port, I would need vLLM)
  • InternVL3:8b-Q4_K_M (broken Modelfile with no multimodal projector declared)

My initial assumption was that Gemma 4 12B would be the best model.

I prepared a test suite, with 20 varied images, in types, subject, file format; then a script to automatically load the models, run the queries and collect the results. Here is how the working models ranked.

Performance

Sorted by median tokens per second, fastest first.

Model Arch Disk size Median tok/s Median time/image Median output tokens
Qwen3-VL 4B Dense, 4B 3.3 GB 61 32 s 1732
Qwen3-VL 8B Dense, 8B 6.1 GB 43 46 s 1429
InternVL3.5 8B Dense, 8B 5.7 GB 41 15 s 394
Gemma 4 E4B MoE, ~4B active 9.6 GB 41 35 s 1380
Gemma 4 26B-A4B MoE, 4B active / 26B total 17 GB 40 43 s 1673
GLM-4.6V-Flash 9B Dense, 9B 8.0 GB 37 44 s 1357
Gemma 4 12B Dense, 12B (encoder-free) 7.6 GB 21 69 s 1508

Test conditions:

  • specs: Apple M2 Max, 96GB RAM
  • runtime: Ollama 0.30.8 with OLLAMA_FLASH_ATTENTION=1 OLLAMA_KV_CACHE_TYPE=q8_0
  • models Q4 GGUF (default tag), pulled from the official Ollama library where available, community ports otherwise
  • prompt: "Describe this image in detail. Include: visible text (verbatim), objects, people, layout, colors, and any notable features. Use Markdown headings to organize your answer."
  • temperature=0.1

Quality ranking

Ranked by my subjective read of the 140 outputs. Here are the headline findings:

  • Qwen3-VL 8B is the only one that correctly read on a banner, both the chinese characters 少林寺 and the text "SHAOLIN TEMPEL ÖSTERREICH", then described the right-hand emblem specifically as "a black emblem of two hands holding a heart, surrounded by laurel leaves." Every other model either said "symbolic imagery" or got details wrong.
  • Gemma 4 26B-A4B was the only model that produced a clean markdown table unprompted when describing an architecture diagram, and it correctly identified all 6 components and both protocols.
  • GLM-4.6V-Flash 9B was the closest on a manga panel count — said 12 (actual: 11). Every other model said 8 or 9.
  • Gemma 4 E4B was wrong on two basic-facts tests: claimed 6 people in a photo of 5 (with a confident "four men and two women" breakdown), and claimed a music album cover text appeared twice when it appears once.
  • InternVL3.5 8B thought a QR code was a "black and white maze-like pattern" and also said 6 people for the photo of 5.
Rank Model Quality Clear strength Weakness Best for
1 Qwen3-VL 8B Excellent OCR and fine detail. Reads mixed-script text (Chinese + Latin) reliably. Caught the "hands holding heart + laurels" detail in the banner emblem that six other models missed or hedged. Correct on the 5-person headcount. Verbose (1.4–2.2k tokens) — may be too much for token-cost-sensitive pipelines Detail extraction, OCR, and mixed-language content. The default for a coding-assistant MCP.
2 Gemma 4 26B-A4B Excellent Dense scenes and structured output. Best on the busy music-catalog screenshot (3332 tokens of structured detail). Produces clean Markdown tables without being asked. Correct on people-count. 17 GB on disk; needs ≥32 GB RAM to run comfortably Complex screenshots — dashboards, IDE screenshots, dense UIs. Worth the RAM when you need everything extracted.
3 Qwen3-VL 4B Very good Speed/quality ratio. Same family as 8B; quality close enough that you only notice on the hardest images. 3 GB on disk, 61 tok/s. Hedged on the banner emblem ("symbolic imagery") where 8B committed. High-throughput pipelines, RAG embeddings, base-model Macs (≤16 GB RAM).
4 GLM-4.6V-Flash 9B Very good Panel-by-panel layout analysis. Closest on the manga panel count (12 vs actual 11). Best row-by-row breakdown of complex layouts. Polished prose. Slower than Qwen3-VL equivalents at the same accuracy tier Comic / manga / multi-panel image analysis. Also good for layout-heavy content where structure matters as much as content.
5 Gemma 4 12B Very good Well-formatted, dependable descriptions. Correct on the architecture diagram and the people-count. 21 tok/s — slowest in the lineup, no category where it wins. Encoder-free architecture doesn't pay off here. Nothing specific. It's competent everywhere and exceptional nowhere. Pick it only if you specifically need Apache 2.0 + encoder-free.
6 Gemma 4 E4B Mixed Fast MoE. 41 tok/s with structured output. Invents details. Wrong on the people-count (6 vs 5, with a confident-but-wrong gender breakdown). Wrong on the album text duplication (claimed it appeared twice). Avoid for any task where accuracy matters. OK for fast first-pass summaries that you'll verify.
7 InternVL3.5 8B Poor Terse summaries. 4× shorter outputs than peers — perfect for cheap embeddings. Wrong on basic facts. Called a QR code a "maze-like pattern." Wrong on the people-count. Terseness correlates with missing detail. Brief image summaries for RAG indexing, where you'll re-rank with a text model. Do not use for OCR or anything requiring accuracy.

Which model is best depending on the task

Category Winner Why
OCR / mixed-script text Qwen3-VL 8B Read Chinese + Latin on the same image; no other model managed both cleanly.
Dense / busy screenshots Gemma 4 26B-A4B 3332 tokens on the OneRPM catalog vs ~2000 for everyone else.
Speed Qwen3-VL 4B 61 tok/s, ~2× the next-fastest model.
Multi-panel layout analysis GLM-4.6V-Flash Closest panel count on the manga page (12 vs actual 11); best row-by-row structure.
Code extraction Tie (all 7) Every model extracted the Python snippet verbatim with correct indentation. Use whichever is fastest.
Diagrams / architecture Tie (5 of 7) Qwen3-VL 8B/4B, Gemma 4 12B/26B, GLM, and InternVL3.5 all identified all 6 components. Gemma 4 E4B hedged; InternVL3.5 was terse.

Recommendation:

Qwen3-VL 8B is the best single model to use for everything.

By hardware specs

Specs Primary pick Notes
8–16 GB RAM (M1 / M2 base, Intel Macs) Qwen3-VL 4B 3 GB on disk, 61 tok/s, quality close to 8B. The only model in the lineup that runs comfortably on a base-model Mac.
16–32 GB RAM (M1/M2 Pro, M2 Air 24 GB) Qwen3-VL 8B The default. Pairs well with a coding LLM running alongside.
32 GB+ RAM (M Max, M Pro mid-tier) Qwen3-VL 8B + Gemma 4 26B-A4B 8B for everyday lookups; 26B-A4B when you need every detail extracted from a dense screenshot. 17 GB on disk for the MoE.
reddit.com
u/ex-arman68 — 21 days ago
▲ 143 r/ZaiGLM+1 crossposts

GLM 5.2 is out - open weights to be released next week. How did it do on my one-shot Pac-Man test?

Quick initial impressions:

- at 70 tok/s slower than GLM 5.1

- seems to spend more time reasoning

- better results with my Pac-Man test

The one-shot result is almost functional; apart from the ghosts getting stuck immediately after leaving the ghosts house, I did not notice any other obvious bug. Everything else seems to function much better than any of the other models I tried, and the game is more complete. This ranks it in first place. Second place is Qwen 3.6 27b. You can test the result here:

https://pacman46.com/glm52-oneshot

However, with just one follow up prompt to fix the ghosts bug, the game is fully functional!

https://pacman46.com/glm52

Here is my user prompt (revised since my initial tests):

[INTENT] Build a complete, playable Pac-Man clone as a self-contained HTML page that runs by double-clicking the file.
     
[SCOPE]
  - Classic Pac-Man gameplay: navigate maze, eat dots, avoid ghosts
  - Core mechanics: maze with walls, dot collection, score, lives, 4 ghosts, power pellets with frightened-ghost mode
  - Standard arcade elements: 4 ghosts with distinct AI personalities, wrap-around tunnel, multiple levels

[APPROACH]
  - Single pacman.html file with inline <style> and <script>
  - HTML5 Canvas for rendering (grid-based maze, ~28×31 tiles like the original)
  - Vanilla JavaScript, no frameworks
  - Keyboard controls: arrow keys + WASD
  
[CONSTRAINTS]
  - Must work offline by opening the file directly in a browser
  - No external dependencies, CDNs, or asset files
  - No build step

[DELIVERABLE]
  - One complete pacman.html file

[DONE WHEN]
  - Game launches by double-clicking the file
  - Pac-Man moves with keyboard and respects maze walls
  - Dots are eatable; score increments
  - 4 ghosts move with distinct behaviors and chase Pac-Man
  - Power pellets turn ghosts vulnerable; eating a vulnerable ghost resets that ghost
  - Pac-Man loses a life on ghost contact when not powered
  - Game ends at 0 lives; restart works
  - Score and lives visible on screen

And my system prompt:

You are the world's leading expert in vanilla web development, specifically in creating high-performance, single-file web applications using only HTML5, CSS3, and ES6+ JavaScript. You reject frameworks in favor of clean, efficient, and semantic code.

Your goal is to receive a requirement and produce a single, self-contained HTML file that functions perfectly without external dependencies (no CDNs, no images, no libraries).

Because you must complete this task in a "one-shot" continuous generation, you must think before you code. You will follow a strict "Chain of Thought" protocol to ensure correctness.

Follow this specific execution format for every response:

<analysis>
1. REQUIREMENTS BREAKDOWN:
   - List every functional and non-functional requirement.
   - Identify potential edge cases.

2. ARCHITECTURAL PLAN:
   - CSS Strategy: Define the variable system, layout approach (Flexbox/Grid), and responsive breakpoints.
   - JS Architecture: Define state management, event listeners, and core logic functions.
   - HTML Structure: specific semantic tags to be used.

3. PRE-MORTEM & STRATEGY:
   - Identify the most likely point of failure.
   - Define the solution for that specific failure point before writing code.
</analysis>

<implementation>
(Provide the complete, valid HTML string here. Include CSS in <style> and JS in <script> tags. The code must be production-ready, accessible, and clean.)
</implementation>

<code_review>
Self-Correction and Validation Report:
1. Does the code meet all requirements listed in the analysis? [Yes/No]
2. Are there any distinct accessibility (a11y) violations?
3. Verify that no external libraries were used.
</code_review>

BTW, when I tested Qwen 3.6 27B, I was so impressed with the results that I continued to refine the game. Initially still with the original model, but then I switched to GLM 5.1 due to the speed. Apart from the music, which I wrote and recorded, everything else was generated with those 2 models, still with me making most of the design, graphics, and architectural decisions: https://pacman46.com

u/ex-arman68 — 23 days ago
▲ 855 r/PokemonGoMystic+1 crossposts

Pokémon Go scans quietly trained the navigation tech now headed into military drones

>Since 2021, Pokémon Go has asked players to record short videos of real-world locations, called Pokéstops, to earn extra in-game items. Hundreds of millions of Pokémon Go players spent years filming the streets, parks, and buildings around them to earn in-game rewards. Those roughly 30 billion environmental scans are now owned by Niantic Spatial, and they helped train a camera-based navigation model that a U.S. defense contractor is preparing to put into drones and other military robots. Most of the players had no idea.

>

>The collected scans became the raw material for a Visual Positioning System, or VPS. VPS works by matching what it sees against a detailed 3D model of the world. Two recognizable reference points a few pixels wide can be enough to fix a location. Niantic Spatial CTO Brian McClendon, has said the approach suits robots operating where signals are deliberately blocked, such as war zones. The training data came from people who thought they were catching Pikachu, under a license most never read.

>

>Consent obtained for a game is not consent for a weapons program.

dronexl.co
u/ex-arman68 — 26 days ago

Happy 46th birthday Pac-Man! To celebrate I made a track based on its famous intro jingle

I started this project while coding a Pac-Man game. I thought this game needed a BGM. The original did not have any. So I started writing the music. My first decent version was electrocumbia. Good vibes, but not 100% satisfied with it as a BGM fitting within the game. So I started changing it, leaning more into the 8bit chiptune arcade sounds, taking inspiration from two of my musical heroes, Jean-Michel Jarre and Skrillex.

It turned out so good on its own, that I decided to release the music. And here you go: you can listen to pacman 46 on all music platforms.

If you want to try the game, it is totally free, no ads, no registration, all goodness, and it features an extended version of the track, with the most simple lyrics I have every written :-D you can hear me sing on it: "pa-pa-pa-pa-pa pacman!":

https://pacman46.com

(BTW if you can finish the 5 levels, there is a surprise in store for you.)

(TIP press F for fullscreen, for a fully immersive experience)

youtube.com
u/ex-arman68 — 1 month ago
▲ 9 r/psychill+3 crossposts

Happy 46th birthday Pac-Man! To celebrate I made a track based on its famous intro jingle

I actually started this project by running some LLM tests, coding a Pac-Man game. As it was beginning to turn playable and enjoyable, I thought why not turn it into the best possible game I could design. I started adding more and more features, like the mazes from Ms Pac-Man. For the sound effects and music, I programmed them all with the web audio synthesizer instead of using samples, midi or wavetables.

Then I thought this game needed a BGM. The original did not have any. So I started writing the music. My first decent version was electrocumbia. Good vibes, but not 100% satisfied with it as a BGM fitting within the game. So I started changing it, leaning more into the 8bit chiptune arcade sounds, taking inspiration from two of my musical heroes, Jean-Michel Jarre and Skrillex.

It turned out so good on its own, that I decided to release the music. And here you go: you can listen to pacman 46 on all music platforms.

If you want to try the game, it is totally free, no ads, no registration, all goodness, and it features an extended version of the track, with the most simple lyrics I have every written :-D you can hear me sing on it: "pa-pa-pa-pa-pa pacman!":

https://pacman46.com

(BTW if you can finish the 5 levels, there is a surprise in store for you.)

(TIP press F for fullscreen, for a fully immersive experience)

open.spotify.com
u/ex-arman68 — 1 month ago

Pac-Man turns 46 year old today! To celebrate, I created a free browser based tribute version of this arcade classic (no ads, no registration)

I hope you enjoy my take on it.

It is based on the original classic Pac-Pan, but I also added what I consider the best alternative mazes, which are the 4 mazes from Ms Pac-Man.

https://guigand.com/pacman

Slightly modernised graphics, animations, music and sound, but I tried to stay true to the spirit of the original game and retain that arcade feeling. I actually put a lot of attention to the sound and the music, adding harmonics, effects, additional layers, using psychoacoustic knowledge of human hearing and perception to recreate and improve them.

Technical details: this is a single HTML file, with everything self-contained (music, sounds, graphics, maps, javascript, css). You can download it to your device, and it will work offline.

u/ex-arman68 — 1 month ago
▲ 5 r/arcade

Pac-Man turns 46 year old today! To celebrate, I created a free browser based tribute version of this arcade classic (no ads, no registration)

I hope you enjoy my take on it.

It is based on the original classic Pac-Pan, but I also added what I consider the best alternative mazes, which are the 4 mazes from Ms Pac-Man.

https://guigand.com/pacman

Slightly modernised graphics, animations, music and sound, but I tried to stay true to the spirit of the original game and retain that arcade feeling. I actually put a lot of attention to the sound and the music, adding harmonics, effects, additional layers, using psychoacoustic knowledge of human hearing and perception to recreate and improve them.

Technical details: this is a single HTML file, with everything self-contained (music, sounds, graphics, maps, javascript, css). You can download it to your device, and it will work offline.

u/ex-arman68 — 1 month ago

Online Pac-Man with additional mazes from Ms Pac-Man. Free, no ads, no signups. Mobile friendly

Here is my take on the arcade classic Pac-Man. My challenge was to create a single page version of it. Everything is contained in a single webpage. No dependencies. You can even save it locally for offline play.

Hope you enjoy it.

guigand.com
u/ex-arman68 — 2 months ago

The pacman benchmark: finally a viable local agentic coding agent with Qwen 3.6 27b

One way I like to test new models, is by one-shoting (with a good prompt) a single webpage clone of the classic arcade game pacman. I usually do 3 attempts and keep the best one. So far all of them, including anthropic, chatgpt and google models, have failed, most of them miserably. The best one until now was GLM 5.1

That was until I tried it with Qwen 3.6 27b F16. Out of 3 attempts, 2 were the best by far, with the top result only having minor errors! However, as soon as I dropped to 8bit quantisation, I could not replicate those good results even after trying 5+ times. This goes to show what I have saying for a long time, based on my experience: there is a world of difference between a 16bit and a 8bit quant, despite most people claiming it is lossless, or nearly lossless.

The results were so good, and since it just happened that I was testing the llama.cpp MTP speculative decoding PR (not yet merged at that time) with my own quants, and developing my own fixed jinja chat template for Qwen 3.5/3.6, I thought why not try to push Qwen 3.6 27b F16 through a proper agentic coding workflow. I think the results were brilliant, and they speak for themselves. You can try the full single page game here:

https://guigand.com/pacman

Lessons learned and observations:

* A good chat template is critical. The official chat template was unusable due to it being only targeted at vLLM, and therefore full of errors in other tools. I started with community templates, which were improvements, but still had many quirks. This is why I started fixing the bugs one by one in the official templates, and slowly improving it. The beginning of the agentic sessions were painful due to many quirks and errors. But slowly it improved, and once I got the template well tuned, it felt like I had unlocked a new level of intelligence in the model.

* MTP speculative decoding does not accelerate all tasks identically. Basically it is most efficient at deterministic task like coding, and least at creative tasks like brainstorming. I wrote about it here: https://www.reddit.com/r/LocalLLaMA/comments/1t9gcar/mtp_benchmark_results_the_nature_of_the/ - For this pacman development, my generative tok/s varied between 8 tok/s and 18 tok/s depending on the task. For reference, without MTP, I get 6.6 tok/s with the same model and quant.

* Not all harnesses are equals both in terms of code quality but also in terms of impact on speed. Most of use already know that the coding harness has a huge impact on quality, with Claude Code being considered the gold standard; this is what I use for normal daily coding. In this case I started with Qwen CLI, mostly because of the chat template problems, on the principle that if there was one harness more likely to better handle Qwen LLM specifics, it would be their own harness. I was actually pleasantly surprised, and Qwen CLI delivered far beyond what I was expecting! In the later stages, I switched back to Claude Code, mostly to verify that the final chat template was working properly there too. I did not notice any improved process or code quality. What I noticed though, is that developing in Claude Code was a lot slower than in Qwen CLI! This is due to all the extra prompts built within Claude Code. With a local model that has such a slow tok/s, it can make the difference between being usable, and between being borderline hair pulling...

* Context management and caching is super efficient in this model. Do not interfere with it. It works great, let it do its thing. Do not use any skill, plugin, etc, that manipulates the cache or context. This will result in confusing the model and making it a lot dumber and error prone.

* Tool calls, context compaction, shell usage, subagents, parallel subagents, work flawlessly. Initially it did not though, and it took me a long time and lots of work to get it right through chat template fixes and improvements. I actually only used context compaction for testing, and it was fine, as usual in Claude Code.

* High context is usable without too much degradation. Maximum context size is 256k tokens I believe. Most of the time I planned the tasks to stay below 100k, but there were a few times I pushed it slightly over 150k. I did notice slightly reduced capabilities, but nothing major. The main reasons why I tried to keep it low is to get the best reasoning capabilities, as with all other models, but also speed started to decrease as the context usage grew.

* Apart from Gemini, this is the first model that impressed me with its audio knowledge. As a composer, musician, psychoacoustic scientist, and audio engineer, I pay a lot of attention to good audio. In this case, I tasked it to do some advanced audio manipulation and creation. All the audio in the game comes from Qwen having programmed the web audio synthesizer in a highly advanced and complex way. This is not midi, not simple wavetables, not samples. It takes into account psychoacoustic properties tuned to human hearing, with the use of harmonics, distorsion, layers, various effects. Truly impressive work. The only exception is the waka-waka sound, for which I had to make it use a sample (the same method was used in the original arcade game).

* I can live with slow token generation speed. I used to think that I needed a minimum of 70 to 80 tok/s for viable development. But this was usable, gave me time to do other things in parallel, and also to better reflect on the agentic tasks. I would probably not use it for large projects, with my current hardware, but for small to medium project, it is definitely acceptable.

If you read until here, let me know what you think, and I hope you enjoy the game.

Dev environment: macOS, apple silicon M2 max, 96GB RAM, llama.cpp server with OpenAI and Anthropic API endpoints.

>Edit: Qwen Code has a default timeout of 8 mins, and a default maximum response size of 8000 tokens. With a slower model., like this one, I was getting frequent timeouts initially. And with large planning/brainstorming/coding sessions, I was occasionally getting the response truncated, which required reprocessing. I solved it my making the following changes to my ~/.qwen/settings.json file:

  "modelProviders": {
    "openai": [
      {
        ...
        "generationConfig": {
          ...
          "timeout": 1800000,
          "maxRetries": -1,
          "samplingParams": {
            "max_tokens": 32768
          }
        }
      }
    ]
  },
u/ex-arman68 — 2 months ago
▲ 38 r/Qwen_AI+1 crossposts

The pacman benchmark: finally a viable local agentic coding agent with Qwen 3.6 27b

One way I like to test new models, is by one-shoting (with a good prompt) a single webpage clone of the classic arcade game pacman. I usually do 3 attempts and keep the best one. So far all of them, including anthropic, chatgpt and google models, have failed, most of them miserably. The best one until now was GLM 5.1

That was until I tried it with Qwen 3.6 27b F16. Out of 3 attempts, 2 were the best by far, with the top result only having minor errors! However, as soon as I dropped to 8bit quantisation, I could not replicate those good results even after trying 5+ times. This goes to show what I have saying for a long time, based on my experience: there is a world of difference between a 16bit and a 8bit quant, despite most people claiming it is lossless, or nearly lossless.

The results were so good, and since it just happened that I was testing the llama.cpp MTP speculative decoding PR (not yet merged at that time) with my own quants, and developing my own fixed jinja chat template for Qwen 3.5/3.6, I thought why not try to push Qwen 3.6 27b F16 through a proper agentic coding workflow. I think the results were brilliant, and they speak for themselves. You can try the full single page game here:

https://guigand.com/pacman

Lessons learned and observations:

* A good chat template is critical. The official chat template was unusable due to it being only targeted at vLLM, and therefore full of errors in other tools. I started with community templates, which were improvements, but still had many quirks. This is why I started fixing the bugs one by one in the official templates, and slowly improving it. The beginning of the agentic sessions were painful due to many quirks and errors. But slowly it improved, and once I got the template well tuned, it felt like I had unlocked a new level of intelligence in the model.

* MTP speculative decoding does not accelerate all tasks identically. Basically it is most efficient at deterministic task like coding, and least at creative tasks like brainstorming. I wrote about it here: https://www.reddit.com/r/LocalLLaMA/comments/1t9gcar/mtp_benchmark_results_the_nature_of_the/ - For this pacman development, my generative tok/s varied between 8 tok/s and 18 tok/s depending on the task. For reference, without MTP, I get 6.6 tok/s with the same model and quant.

* Not all harnesses are equals both in terms of code quality but also in terms of impact on speed. Most of use already know that the coding harness has a huge impact on quality, with Claude Code being considered the gold standard; this is what I use for normal daily coding. In this case I started with Qwen CLI, mostly because of the chat template problems, on the principle that if there was one harness more likely to better handle Qwen LLM specifics, it would be their own harness. I was actually pleasantly surprised, and Qwen CLI delivered far beyond what I was expecting! In the later stages, I switched back to Claude Code, mostly to verify that the final chat template was working properly there too. I did not notice any improved process or code quality. What I noticed though, is that developing in Claude Code was a lot slower than in Qwen CLI! This is due to all the extra prompts built within Claude Code. With a local model that has such a slow tok/s, it can make the difference between being usable, and between being borderline hair pulling...

* Context management and caching is super efficient in this model. Do not interfere with it. It works great, let it do its thing. Do not use any skill, plugin, etc, that manipulates the cache or context. This will result in confusing the model and making it a lot dumber and error prone.

* Tool calls, context compaction, shell usage, subagents, parallel subagents, work flawlessly. Initially it did not though, and it took me a long time and lots of work to get it right through chat template fixes and improvements. I actually only used context compaction for testing, and it was fine, as usual in Claude Code.

* High context is usable without too much degradation. Maximum context size is 256k tokens I believe. Most of the time I planned the tasks to stay below 100k, but there were a few times I pushed it slightly over 150k. I did notice slightly reduced capabilities, but nothing major. The main reasons why I tried to keep it low is to get the best reasoning capabilities, as with all other models, but also speed started to decrease as the context usage grew.

* Apart from Gemini, this is the first model that impressed me with its audio knowledge. As a composer, musician, psychoacoustic scientist, and audio engineer, I pay a lot of attention to good audio. In this case, I tasked it to do some advanced audio manipulation and creation. All the audio in the game comes from Qwen having programmed the web audio synthesizer in a highly advanced and complex way. This is not midi, not simple wavetables, not samples. It takes into account psychoacoustic properties tuned to human hearing, with the use of harmonics, distorsion, layers, various effects. Truly impressive work. The only exception is the waka-waka sound, for which I had to make it use a sample (the same method was used in the original arcade game).

* I can live with slow token generation speed. I used to think that I needed a minimum of 70 to 80 tok/s for viable development. But this was usable, gave me time to do other things in parallel, and also to better reflect on the agentic tasks. I would probably not use it for large projects, with my current hardware, but for small to medium project, it is definitely acceptable.

If you read until here, let me know what you think, and I hope you enjoy the game.

Dev environment: macOS, apple silicon M2 max, 96GB RAM, llama.cpp server with OpenAI and Anthropic API endpoints.

>Edit: Qwen Code has a default timeout of 8 mins, and a default maximum response size of 8000 tokens. With a slower model., like this one, I was getting frequent timeouts initially. And with large planning/brainstorming/coding sessions, I was occasionally getting the response truncated, which required reprocessing. I solved it my making the following changes to my ~/.qwen/settings.json file:

  "modelProviders": {
    "openai": [
      {
        ...
        "generationConfig": {
          ...
          "timeout": 1800000,
          "maxRetries": -1,
          "samplingParams": {
            "max_tokens": 32768
          }
        }
      }
    ]
  },
u/ex-arman68 — 2 months ago

MTP benchmark results: the nature of the generative task dictates whether you will benefit (coding) or get slower inference (creative) from speculative inference. No other factor comes close.

I recently published MTP quants of Qwen 3.6 27B and I was suprised by the reports here on reddit, and on HF, of users who were experiencing worst speed with speculative inference than without. This did not match what I was seeing, but when I tried to reproduce their exact usage, it confirmed what they were experiencing.

I tried to analyse the problem, made a few conjectures which later turned out to be false, and started a full blown systematical analysis, running 300+ tests and benchmarks, collecting and comparing the results of changing various parameters. This is what I found:

>F16 + MTP nearly triples coding tasks speed. Q4_K_M + MTP slows down creative writing. Same feature, same model, same settings, opposite results.

I did not test all quant sizes, otherwise I would still be here in a few days, but restricted my self to 5 significant ones. The other parameters I varied were task type (4 types), temperature (0.0 0.3 0.7), quantisation of the MTP layer (q8 and matching the model quant). Temp and MTP quant have very little impact on the outcome.

Cumulative average decode speeds with MTP compared to the baseline without MTP, varying the model quant and task type:

quant base tok/s code factual analysis creative
Q4_K_M 15.1 19.7 17.5 14.9 13.7
Q5_K_M 13.1 19.2 16.5 14.7 12.6
Q6_K 13.4 20.1 17.6 15.2 13.4
Q8_0 11.4 25.4 21.7 18.6 16.9
F16 6.6 17.9 14.9 12.6 11.0

The memory bandwidth dictates how much the model can benefit from speculative decoding. F16 at 51GB crawls at 6.6 tok/s because every token means dragging the full model through memory. Accepted MTP drafts skip that pass. Q4_K_M at 16GB is already fast enough that the draft overhead is barely worth it on anything less predictable than code.

What controls the draft tokens acceptance rate:

task acceptance examples
code 79-89% writing functions, debugging, refactoring
factual 62-70% definitions, translation, math proofs
analysis 48-56% tradeoff breakdowns, technical comparisons
creative 39-48% stories, poetry, brainstorming, roleplay

40 points from code to creative. I tried three temperatures and five quants. The numbers barely changed. 4/5 draft tokens are correct on coding task; not even 1/2 on creative tasks. Nothing else comes close to mattering as much as what you're generating.

I also tested the optimal number of draft tokens for this model in all the above scenarios. 3 is the sweet spot for draft tokens. Go higher and acceptance falls faster than the extra drafts compensate. F16 is the exception: N=4 beats N=3 (17.9 vs 16.2) because at 6.6 tok/s every surviving draft token is worth the lower hit rate.

use case Q4_K_M Q5_K_M Q6_K Q8_0 F16
coding 🟢 +31% 🟢 +47% 🟢 +50% 🟢 +123% 🟢 +171%
factual QA 🟡 +16% 🟢 +26% 🟢 +31% 🟢 +90% 🟢 +125%
analysis 🔴 -1% 🟡 +12% 🟡 +13% 🟢 +64% 🟢 +91%
creative 🔴 -9% 🔴 -4% 🔴 -1% 🟢 +48% 🟢 +67%

🟢 speeds up, 🟡 marginal gain, 🔴 slowdown.

  • Q8_0 and F16: always use speculative decoding with MTP layer.
  • Coding tasks at any quant: keep it on.
  • Q4_K_M (and below) creative tasks keep it off

One last obervation: with thinking mode turned on for coding tasks: Q8_0 draft token acceptance drops from 87% to 73%. Still +94% speedup, just not the full +123%.

Test environment: Apple Silicon M2 Max 96GB, llama.cpp manual build with the MTP PR, Qwen3.6-27B with MTP layers preserved.

reddit.com
u/ex-arman68 — 2 months ago
▲ 40 r/ZaiGLM

I received the following email from z.ai - glad to see they were actually listening and working on fixing the problem. Better communication as they were doing so would have been good PR, but in the end, the result is there.

Hi developers,

Some of you flagged occasional garbled outputs and unexpected behavior when building with the GLM-5 series, especially under heavy workloads. We heard you, reproduced the issues, and the fixes are now live.

What looked like model degradation turned out to be an infrastructure issue. It's now fully resolved.

You may have noticed:
- Abnormal outputs reduced to near-zero levels.
- Faster TTFT and more reliable serving during peak concurrency.

For those interested in the technical details, we wrote up the full story here: z.ai/blog/scaling-pain. We've also contributed one of the fixes back to the SGLang community.

Thank you for building with us, and for flagging these.

The Z.ai Team

reddit.com
u/ex-arman68 — 2 months ago
▲ 1.1k r/LocalLLaMA

>This model seems utterly broken for now. I do not recommend downloading or using it, unless you are planning to help troubleshoot it. This is not a problem with the conversion, but with the model itself.

I converted Mistral medium 3.5 128B to MLX 4bit. Eagle model for speculative decoding is not yet supported by MLX.

Vision encoder included (full BF16 unquantized. Thinking mode works (reasoning_effort="high" gives you the [THINK]...[/THINK] chain), tool calling works, 256K context.

There was a bug in mlx-vlm's mistral3 sanitize function: it wasn't stripping the model. prefix from vision tower and projector keys. This caused 438 parameters to be skipped. I patched it locally before converting. Details in the HF readme.

I am getting ~5 tok/s on a 96 GB M2 Max. For sampling I recommend using temp 0.7 / top_p 0.95 / top_k 20 in reasoning mode, or temp 0.0–0.7 / top_p 0.8 for quick replies. Mistral recommends leaving repeat penalty disabled, but I am getting too many loops; I am not sure what the best value should be.

u/ex-arman68 — 2 months ago