WebGPU isn't enabled by default on Linux Chrome. Here's how to enable it for Flatpak Chrome.
Create the config file at ~/.var/app/com.google.Chrome/config/chrome-flags.conf with these contents:
--enable-unsafe-webgpu
If you're using Chrome installed via Flatpak (common on Fedora Silverblue, immutable distros, etc.), the Claude Code browser automation won't work out of the box. Here's how to fix it.
Claude Code installs the native messaging host to the standard Chrome location, but Flatpak Chrome:
/tmp that isolates the Unix socket used for communication~/.claude/ or ~/.local/share/claude/ by default| # Base model configuration | |
| base_model: mistralai/Mistral-Small-24B-Base-2501 | |
| model_type: MistralForCausalLM | |
| tokenizer_type: AutoTokenizer | |
| trust_remote_code: true | |
| tokenizer_use_fast: true | |
| # Device settings - simpler approach for multi-GPU | |
| # Use balanced loading with 4-bit quantization | |
| device_map: "balanced" |
| """ | |
| Polykite Tiling Explorer | |
| Author: OpenAI GPT-4 | |
| Description: | |
| This script explores the tiling properties of polykites, specifically those with 8 components. | |
| It generates all possible polykites with 8 components, canonicalizes them to avoid duplicate | |
| analysis, and then computes their isohedral numbers to identify interesting candidates for further | |
| mathematical exploration. |
| /* Partial port of PBRT v3 <https://github.com/mmp/pbrt-v3> to WGSL. | |
| BSD 2-Clause License | |
| Copyright (c) 1998-2015, Matt Pharr, Greg Humphreys, and Wenzel Jakob | |
| Copyright (c) 2022, David A Roberts <https://davidar.io/> | |
| Redistribution and use in source and binary forms, with or without | |
| modification, are permitted provided that the following conditions are met: |
| fn pcg_random(seed: ptr<function, uint>) -> float { | |
| *seed = *seed * 747796405u + 2891336453u; | |
| let word = ((*seed >> ((*seed >> 28u) + 4u)) ^ *seed) * 277803737u; | |
| return float((word >> 22u) ^ word) / float(0xffffffffu); | |
| } | |
| // weighted coin flip (bernoulli) | |
| fn flip(state: ptr<function, uint>, p: float) -> bool { | |
| return pcg_random(state) <= p; | |
| } |
| fn isfinite(x: f32) -> bool { | |
| return clamp(x, -3.4e38, 3.4e38) == x; | |
| } | |
| fn hash12(p: float2) -> float { | |
| var p3 = fract(float3(p.xyx) * .1031); | |
| p3 += dot(p3, p3.yzx + 33.33); | |
| return fract((p3.x + p3.y) * p3.z); | |
| } |
| // Based on the path tracing tutorial series by demofox: | |
| // https://blog.demofox.org/2020/05/25/casual-shadertoy-path-tracing-1-basic-camera-diffuse-emissive/ | |
| let MINIMUM_RAY_HIT_TIME = .1; | |
| let FAR_PLANE = 1e4; | |
| let FOV_DEGREES = 90.; | |
| let NUM_BOUNCES = 8; | |
| let RAY_POS_NORMAL_NUDGE = .01; | |
| let NUM_RENDERS_PER_FRAME = 100; | |
| let EXPOSURE = .5; |