

Neat, installed it just now and seems to work fine. Now I just need to remember if I already played it on Xbox…


Neat, installed it just now and seems to work fine. Now I just need to remember if I already played it on Xbox…


I have a Strix Halo as well and I have it configured to dynamically allocate everything, so I have run some 100GB+ models as well. The OS itself needs way under a GB without UI so you can get pretty close to the 128GB.
Currently on Fedora, running llama-swap to start the llama.cpp toolboxes by kyuz0, audio.cpp and ComfyUI.
Qwen3.8-27b is my favorite model right now for most things, still playing around with Qwen3.8-Flash-Next but not quite there yet.
Gemma4-31b is also really good with languages and natural writing but I prefer Qwen3.8 for anything programming or logical.


No, but something “medium sized” is scheduled for next week. No idea if they are talking about another 122b or 397b.


Here’s the result by Qwen3.8-27b Q8 for “Create an SVG of an Iguana.”:

For your image with “Create an SVG of an Iguana based on the provided image.”:

(Using llama.cpp with Opencode)


What was your prompt for the iguana?


In what sense? Fennec feels identical to any other Android browser for me…


I use Fennec from F-Droid, a Firefox fork.
Yes, 27b is going to produce much better results.
You need to use MTP (Multi token prediction) to get acceptable speeds on a Strix Halo. On llama.cpp you just need to add --spec-type draft-mtp --spec-draft-n-max 3 -np 1 to your arguments.
You should see around 15-20 t/s in coding tasks at Q8, which will still be much slower than Qwen3-Coder-Next-UD-Q8 since it’s 27b active parameters instead of 3b.
As for Q8 vs BF16, it usually makes barely to no difference in quality. Speed is higher on Q8 though. Still testing with 3.8 since it just released.
27b fits easily into 128 unified RAM, even unquantized. So something was definitely wrong.
Running 3.8-27b on my Strix Halo box right now.


128GB is plenty to try different models and see what works best. Have fun!
In case you didn’t see it yet, your best friend for Strix Halo machines is https://strixhalo.wiki/
Lots of info on how to setup llama.cpp (with pre-made toolboxes), configure the BIOS settings for maximum available VRAM and Linux for the best performance.
I would recommend setting um llama-swap together with the Strix Halo Toolboxes with llama.cpp. So you can freely swap between models.


I run both of them at Q8, unquantized KV cache and same settings.
35b does really well at most tasks but once the dependencies get complicated and the tool calls reach into the hundreds, 35b struggles where 27b still excels.
So generally I use 27b unless I need it fast, then I swap to 35b or 122b depending on what I need.


Yes. Generally, the larger the model, the more knowledge they have.
However, knowledge is not everything, 27b (even 3.6) is much better than Qwen 3.5 at calling tools and general programming.
27b is also a dense model (27b parameters are active at the same time) while 122b is a MoE model with just 10b active parameters. Usually this makes 27b much smarter at understanding complex situations.
I would recommend trying both and seeing which performs better in your tasks. You can also use something like llama-swap to seamlessly swap between them.
If you need something fast, Qwen3.6-35b is also MoE with 3b active parameters. It is really fast and fairly competent in many fields.
Gemma-4-31b is another dense model that does really well with languages (translations, summaries, …). There’s not really a one size fits all with local models but with swapping them around you can get some great results, especially on a Framework Desktop where multiple of the smaller ones might fit at the same time.


I really hope the 27b does not lack non-thinking mode and the vision encoder. That would be a huge downgrade over 3.6.


27b is much better though…
And it still gets 15-20 t/s with MTP which is plenty fast.


2.4T is 4.9TB in size, no way to run that on a Framework Desktop.
27B releases on Friday but should be about 55GB like the old one, that one fits easily and should beat your 3.5-Coder.
Qwen 3.5 122b should also fit easily on a Framework Desktop when quantized and has more knowledge.
Yay, that’s awesome!
I needed to do a dotnet dnx 2dog again after your commands to regenerate the build assets but after that the build worked fine, thanks!
The asterisk: the loading performance of certain scenes and textures isn’t great at all
To cheer you up: The performance of the regular Godot web version is not all that great either for 3D stuff. It loaded quite quickly on my PC. Throws an error on level load but still works, might just be the shady level loading we did under time pressure.
PS: Super adorable game idea. That angry beach ball can get bent, though… sheesh. Ey, I’m walkin’ crawlin’ here!
Glad you liked it! We put a lot of work into this one. :)
Shame I didn’t see 2dog during the jam but for next time we are equipped to finally ship a web version. Thanks!
Awesome! Let me know if you need anything else and feel free to keep the project around as test case.
I think Godot converts the Blender files internally so good to hear that it works now with the path set.
We started in Forward+ rendering so it is definitely possible that something went wrong when switching to Compatibility renderer. I did a blank test project and everything went fine so it must be something related to the project.
do you have a public repo with the game jam entry somewhere?
Yes! It’s open source and I made a branch with the renderer switched to Compatibility and our water shader removed (incompatible with Compatibility renderer). Should be able to just add 2dog right away and run it. (The regular desktop build runs fine)
You can find it here: https://gitlab.com/gmtk26zbandco/gmtk26-godot-game/-/tree/web-build
You could also try to create a source map: dotnet publish -c Release -p:WasmEmitSymbolMap=true -p:WasmNativeStrip=false
I added the source map and the stack trace looks more usable now:
[MONO] /__w/1/s/src/runtime/src/mono/mono/mini/aot-runtime-wasm.c:188 <disabled>
Mc<@wasm_native_to_interp_GodotSharp_Godot_Bridge_ScriptManagerBridge_CreateManagedForGodotObjectScriptInstance (http://127.0.0.1:8000/_framework/dotnet.runtime.js:3:172284
dotnet.native.wasm.wasm_trace_logger@:wasm-function[161353]:0x283a3f9
dotnet.native.wasm.eglib_log_adapter@:wasm-function[148375]:0x2640662
dotnet.native.wasm.monoeg_g_logv_nofree@:wasm-function[148280]:0x263e7bf
dotnet.native.wasm.monoeg_g_log@:wasm-function[148282]:0x263e88f
dotnet.native.wasm.monoeg_g_log_disabled@:wasm-function[148283]:0x263e8c4
dotnet.native.wasm.mono_wasm_get_interp_to_native_trampoline@:wasm-function[151868]:0x26f0907
dotnet.native.wasm.ves_pinvoke_method@:wasm-function[147551]:0x261556b
dotnet.native.wasm.mono_interp_exec_method@:wasm-function[147539]:0x260893b
dotnet.native.wasm.mono_thread_info_current@:wasm-function[148504]:0x26446fb
dotnet.native.wasm.interp_throw_ex_general@:wasm-function[147541]:0x26149c6
dotnet.native.wasm.mono_interp_exec_method@:wasm-function[147539]:0x2608867
dotnet.native.wasm.interp_runtime_invoke@:wasm-function[147589]:0x261680e
dotnet.native.wasm.mono_jit_runtime_invoke@:wasm-function[151658]:0x26e159e
dotnet.native.wasm.do_runtime_invoke@:wasm-function[150592]:0x26aff97
dotnet.native.wasm.mono_runtime_invoke_checked@:wasm-function[150591]:0x26aff53
dotnet.native.wasm.mono_runtime_try_invoke_byrefs@:wasm-function[150687]:0x26b5306
dotnet.native.wasm.ves_icall_InternalInvoke@:wasm-function[149718]:0x268592e
dotnet.native.wasm.ves_icall_InternalInvoke_raw@:wasm-function[149814]:0x2689e7b
dotnet.native.wasm.do_icall@:wasm-function[147637]:0x26189f1
dotnet.native.wasm.do_icall_wrapper@:wasm-function[147549]:0x261538f
dotnet.native.wasm.mono_interp_exec_method@:wasm-function[147539]:0x2608835
dotnet.native.wasm.mono_assertion_message_disabled@:wasm-function[148285]:0x263e908
dotnet.native.wasm.ftnptr_to_imethod@:wasm-function[147548]:0x2615271
dotnet.native.wasm.mono_interp_exec_method@:wasm-function[147539]:0x2608764
dotnet.native.wasm.interp_entry@:wasm-function[147626]:0x261817a
dotnet.native.wasm.interp_entry_static_ret_4@:wasm-function[147665]:0x26198f5
dotnet.native.wasm.wasm_native_to_interp_GodotSharp_Godot_Bridge_ScriptManagerBridge_CreateManagedForGodotObjectScriptInstance@:wasm-function[161284]:0x2838975)
dotnet.native.wasm.CSharpScript::_create_instance(Variant const**, int, Object*, bool, Callable::CallError&)@:wasm-function[105210]:0x1bfe612
dotnet.native.wasm.CSharpScript::instance_create(Object*)@:wasm-function[105221]:0x1c012a3
dotnet.native.wasm.Object::set_script(Variant const&)@:wasm-function[137662]:0x2419e21
dotnet.native.wasm.SceneState::instantiate(SceneState::GenEditState) const@:wasm-function[42805]:0xa44c80
dotnet.native.wasm.PackedScene::instantiate(PackedScene::GenEditState) const@:wasm-function[42808]:0xa46e43
dotnet.native.wasm.Main::start()@:wasm-function[133508]:0x230c7e8
dotnet.native.wasm.GodotInstance::start()@:wasm-function[134260]:0x232b9bc
dotnet.native.wasm.MethodBindTR<bool>::ptrcall(Object*, void const**, void*) const@:wasm-function[137157]:0x23ff93a
dotnet.native.wasm.gdextension_object_method_bind_ptrcall(void const*, void*, void const* const*, void*)@:wasm-function[87320]:0x14f1f59
dotnet.native.wasm.do_icall@:wasm-function[147637]:0x26189d3
dotnet.native.wasm.do_icall_wrapper@:wasm-function[147549]:0x261538f
dotnet.native.wasm.mono_interp_exec_method@:wasm-function[147539]:0x2608835
dotnet.native.wasm.interp_runtime_invoke@:wasm-function[147589]:0x261680e
dotnet.native.wasm.mono_jit_runtime_invoke@:wasm-function[151658]:0x26e159e
dotnet.native.wasm.do_runtime_invoke@:wasm-function[150592]:0x26aff97
dotnet.native.wasm.mono_runtime_invoke_checked@:wasm-function[150591]:0x26aff53
dotnet.native.wasm.mono_runtime_try_invoke_byrefs@:wasm-function[150687]:0x26b5306
dotnet.native.wasm.ves_icall_InternalInvoke@:wasm-function[149718]:0x268592e
dotnet.native.wasm.ves_icall_InternalInvoke_raw@:wasm-function[149814]:0x2689e7b
dotnet.native.wasm.do_icall@:wasm-function[147637]:0x26189f1
dotnet.native.wasm.do_icall_wrapper@:wasm-function[147549]:0x261538f
dotnet.native.wasm.mono_interp_exec_method@:wasm-function[147539]:0x2608835
dotnet.native.wasm.interp_runtime_invoke@:wasm-function[147589]:0x261680e
dotnet.native.wasm.mono_jit_runtime_invoke@:wasm-function[151658]:0x26e159e
dotnet.native.wasm.do_runtime_invoke@:wasm-function[150592]:0x26aff97
dotnet.native.wasm.mono_runtime_try_invoke@:wasm-function[150601]:0x26b0803
dotnet.native.wasm.mono_runtime_invoke@:wasm-function[150637]:0x26b2ce0
dotnet.native.wasm.mono_wasm_invoke_jsexport@:wasm-function[161345]:0x2839f50
createDotnetRuntime/Module._mono_wasm_invoke_jsexport@http://127.0.0.1:8000/_framework/dotnet.native.js:14520:195
wn@http://127.0.0.1:8000/_framework/dotnet.runtime.js:3:29440
Vc/<@http://127.0.0.1:8000/_framework/dotnet.runtime.js:3:178845
Vc@http://127.0.0.1:8000/_framework/dotnet.runtime.js:3:178996
async*Godot/Module.callMain@http://127.0.0.1:8000/godot.js:70:37
SafeEngine/start/Engine</</<@http://127.0.0.1:8000/godot.js:894:24
promise callback*SafeEngine/start/Engine</<@http://127.0.0.1:8000/godot.js:893:25
SafeEngine/start/Engine<@http://127.0.0.1:8000/godot.js:886:13
promise callback*start@http://127.0.0.1:8000/godot.js:865:22
SafeEngine/startGame/Engine<@http://127.0.0.1:8000/godot.js:932:22
promise callback*startGame@http://127.0.0.1:8000/godot.js:931:8
@http://127.0.0.1:8000/:146:24
@http://127.0.0.1:8000/:161:10
logging.ts:129:25
Thanks for taking the time!
Good for him!