{"name":"qwennie: Run a Tiny Transformer Entirely in CSS","description":"qwennie is a 78,672-parameter decoder-only transformer implemented entirely in CSS, with no JavaScript. It demonstrates real attention and token-by-token replies in the browser, and is best suited to experimentation rather than production chat.","github":"https://github.com/Metrix187/qwennie","url":"https://osrepos.com/repo/metrix187-qwennie","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/metrix187-qwennie","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/metrix187-qwennie.md","json":"https://osrepos.com/repo/metrix187-qwennie.json","topics":["css","machine-learning","generative-ai","transformer","css-inference","browser-experiment"],"keywords":["css","machine-learning","generative-ai","transformer","css-inference","browser-experiment"],"stars":null,"summary":"qwennie is a 78,672-parameter decoder-only transformer implemented entirely in CSS, with no JavaScript. It demonstrates real attention and token-by-token replies in the browser, and is best suited to experimentation rather than production chat.","content":"## Overview\n\nqwennie is a small decoder-only transformer whose inference runs entirely in CSS, with no JavaScript engine or server. It uses a real transformer architecture, including RoPE, RMSNorm, SwiGLU, causal attention and a KV cache, to generate replies word by word. The project explores whether CSS can execute a neural model, rather than simply display a prewritten response.\n\nThe v1 demo offers replies to preset messages; v2 adds a 205,040-parameter model and two-turn conversations. Both are browser experiments, not general-purpose chat systems. The project is useful to people exploring CSS capabilities, neural-network implementation and browser rendering internals, not to teams seeking a practical LLM deployment.\n\n## Key Features\n\n- Implements transformer inference in CSS custom properties and `calc()`, with no JavaScript.\n- Uses int8-quantized weights, RoPE, RMSNorm, SwiGLU, causal attention and an inherited-property KV cache.\n- Provides v1 with preset prompts and v2 with two-turn conversations and a longer context.\n- Includes Python training and build scripts to compile model weights into generated stylesheets and HTML.\n- Supplies NumPy reference outputs and browser parity tools to check generated replies against the model implementation.\n- Offers a live demo and generated site files, with no server or build step needed to try the shipped demo.\n\n## Use Cases\n\n- CSS and browser-engine researchers can inspect how deeply nested custom properties and style recalculation behave under computation-heavy workloads.\n- Machine-learning educators can use the project to demonstrate transformer components and compare CSS inference with a Python reference.\n- Creative coders can explore an intentionally unconventional, JavaScript-free interactive text generator.\n- Developers evaluating CSS limits can try the demo in Chromium and observe how a model's output changes with different inputs.\n\n## Our Take\n\nqwennie is a carefully verified browser experiment with unusually complete reproducibility, but its narrow purpose, browser constraints and single-contributor development make it a poor choice for production chat.\n\n**Good fit if:**\n- You want a concrete demonstration of transformer inference implemented in CSS, not a conventional language-model runtime.\n- You can use Chromium and are comfortable with slow, computation-heavy style recalculation.\n- You want to inspect or rebuild the model using the included Python training and compilation scripts.\n\n**Look elsewhere if:**\n- You need a responsive chat model for users; the README reports seconds of style recalculation per reply.\n- Your users need reliable behavior across browsers; the README says changing prompts works properly only in Chromium.\n- You need a project with a broader maintainer base or established release history.\n\n## Project Health\n\n| Signal | Value |\n|---|---|\n| Status | **New**: less than six months old |\n| Last commit | 2026-09-05 (2 months ago) |\n| Commits, last 90 days | 10 |\n| Releases, last 12 months | 0 |\n| Contributors | 1 |\n| Issues closed, last 90 days | 0 |\n| Pull requests merged, last 90 days | 0 |\n| Project age | 4 months |\n\nChecked on 2026-11-09 with the GitHub API.\n\n## Project Facts\n\n- Language: CSS\n- Stars: 4\n- Forks: 1\n- Topics: creative-coding, css, css-hacks, machine-learning, no-javascript, transformer\n- Website: https://metrix187.github.io/qwennie/\n- Archived: no\n\n## What You Need\n\nDetected in the repository:\n\n- CSS (main language on GitHub)\n\n## Getting Started\n\nOpen the [live demo](https://metrix187.github.io/qwennie/) in Chromium 138 or newer. To run a local copy, clone the [repository](https://github.com/Metrix187/qwennie) and open `index.html`. See the README for browser details, verification instructions and retraining steps.\n\n## License in Plain Words\n\nNo standard license was detected. Without a license, the default copyright rules apply: you may read the code, but not reuse it. Check the repository or ask the authors.\n\n## Considerations\n\nThe project is new, with recent commits but no release history reported. Development is concentrated in one contributor, so ongoing maintenance depends on that person. The README reports no open issues, but the measured data shows no recent issue closures or merged pull requests, which offers little evidence about how incoming work is handled.\n\nBrowser support is a practical limitation: the README reports correct initial output in several engines, but prompt changes work properly only in Chromium. The model is also intentionally small and trained on a limited original chat corpus; its replies are not a substitute for a general-purpose language model. The README declares the WTFPUP license, while repository metadata reports no asserted license, so verify the license file before incorporating it into a project.","metrics":{"detailViews":2,"githubClicks":1},"dates":{"published":null,"modified":"2026-11-09T10:37:23.000Z"}}