<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/i-post-trained-a-model-on-demoscenes-625xr8xdw" -->

---
title: I post trained a model on Demoscenes | daily.dev
description: A developer fine-tuned a 7B code model to generate demoscene-style JavaScript 'Dweets' from Dwitter.net, then used manual RLHF to inject personal aesthetic...
canonical: https://daily.dev/posts/i-post-trained-a-model-on-demoscenes-625xr8xdw
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: I post trained a model on Demoscenes | daily.dev
og:description: A developer fine-tuned a 7B code model to generate demoscene-style JavaScript 'Dweets' from Dwitter.net, then used manual RLHF to inject personal aesthetic...
og:url: https://daily.dev/posts/i-post-trained-a-model-on-demoscenes-625xr8xdw
og:image: https://api.daily.dev/og/posts/625XR8Xdw.png
og:image:alt: I post trained a model on Demoscenes
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# I post trained a model on Demoscenes

**[Hacker News](https://daily.dev/sources/hn)** · 8 min read · 0 upvotes · 0 comments

## Summary

A developer fine-tuned a 7B code model to generate demoscene-style JavaScript 'Dweets' from Dwitter.net, then used manual RLHF to inject personal aesthetic taste. They started with Qwen2.5-Code-7B, continued pretraining on 25k scraped Dweets, and cut perplexity on held-out examples from 28.63 to 8.57. A curriculum weighting the top-ranked 'awesomeness' Dweets further dropped perplexity to 5.65. They then ran GRPO with themselves as the reward function, manually judging around 40,000 generated animations over 9 to 10 rounds, and released the resulting Demoscener-7B model and dataset on HuggingFace.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://datavorous.com/writing/demoscener>

## Questions this post answers

### How can I use RLHF to make a code-generation model match my personal aesthetic preferences?

One approach uses GRPO with yourself as the reward function: sample a group of candidate completions (e.g. eight per prompt), render them, manually pick the one you find most appealing, and use that preference to update the policy. Repeating this over about 9 to 10 rounds of 500 groups each, with roughly 40,000 animations manually inspected, measurably shifted a 7B code model's outputs toward the curator's taste.

_daily.dev surfaces hands-on RLHF workflows for developers steering models toward subjective, taste-driven goals._

### Does curriculum learning based on a popularity score improve a fine-tuned code model's outputs?

Yes, weighting training samples by a community 'awesomeness' score improved a model's predictions even on unseen examples. Starting all 5,000 ranked Dweets at equal 20% sampling weight per bucket, the top 1,000 grew to about 67% of sampling probability by step 400, and held-out perplexity fell from 7.42 to 5.65 across 7,000 Dweets, with gains spread across ranks.

_developers weighing curriculum-learning tricks for fine-tuning can track real benchmarked results on daily.dev._

### What base model and dataset size are needed to fine-tune an LLM on extremely short, code-golfed JavaScript snippets?

A 7B parameter base model, Qwen2.5-Code-7B, was continued-pretrained on 25,000 scraped 140-character JavaScript 'Dweets' from Dwitter.net's public API, plus about 1,300 held out for validation. The base model initially struggled badly with the code-golf syntax and mathematical shorthand typical of these snippets, but continued pretraining cut held-out perplexity from 28.63 to 8.57.

_anyone sizing a fine-tuning dataset for niche code styles can compare approaches like this via daily.dev._

## Community take

How the wider developer community reacted, aggregated from 1 discussion and 32 comments across hackernews (as of 2026-11-01).

**TL;DR:** The discussion is overwhelmingly critical, arguing that training a model to generate demoscene-style code misunderstands and devalues a culture built on human craftsmanship, mathematical puzzle-solving, and creative constraint.

**Sentiment:** 10% positive · 15% mixed · 75% skeptical

**The case for**

- A few argue AI is just another tool and fits the demoscene's history of embracing new technology.
- Some say the project is harmless since it's an opt-in experiment nobody is forced to use.

**The pushback**

- Many argue the demoscene's whole point is human ingenuity and puzzle-solving under constraint, which AI-generated output undermines.
- Several say the community will never accept AI-made demos and view this as an intrusion on a human-only hobby.
- Some compare it to scraping/stealing other people's creative work with little effort.
- Multiple commenters feel the magic and audience appreciation at demo parties specifically comes from knowing a human solved the problem, which is lost with AI generation.

**By community**

- hackernews (heated): A loud, contentious argument plays out between people who see this as devaluing a human-centric art form and a smaller group defending the project as a harmless or even fitting use of new technology.

**Hottest debate:** Whether using AI to generate demoscene-style art fundamentally betrays the culture's human-craftsmanship ethos or is simply the next tool in a scene historically built on embracing new technology.

**Open questions**

- Would the demoscene community ever accept or compete with AI-assisted demos under current rules?
- Does AI-generated procedural art actually extend genetic-algorithm/procedural-art techniques or just bypass the skill the scene values?

**Highlights**

> This person is actually correct. Demos are much more on the art side of coding than most forms of programming, so while LLMs may be up to the mechanical task, they won't produce code with the finesse that a human coder can. That goes double for the art and music. What's more, a demo with AI-gen elements wouldn't be accepted by the community. AI-gen webshit may be embraced by the industry, but the demoscene has different standards: human craftsmanship is the entire point. Relatedly, I was a bit surprised and delighted to find out that the Sonic (the Hedgehog) community is vehemently rejecting AI recompiles, ports, and fangame projects. Clankers are ok with them when it comes to Dr. Robotnik's evil creations, but not in the real world!
> — [bitwize on hackernews](https://news.ycombinator.com/item?id=50319378)

> The human side of the demo scene is what I think makes it appealing. Sharing and consuming. A fellow human did that! Coder-as-problem-solver-and-artist. For sure it’s intellectually interesting if AI can generate something novel within  demoscene constraints (140 chars or extreme low res or a POKEY chip at 1MHz or whatever) … something humans maybe thought impossible … like a winning move that makes a go or chess grandmaster say WTF. It changes what’s possible. But then most of us (?) still hope the sport/scene/art goes back to human endeavour. I’ve been to parties where demos are running on a large screen, even ones we’ve seen before, and the audience will ooo and aah because a human figured out how to do that stuff under constraint. The magic is lost if it’s generated IMO.
> — [emptybits on hackernews · 1 comments](https://news.ycombinator.com/item?id=50320076)

> Trust me when I say there are few things the demoscene despises more than using AI to make demos. This is oil and water.
> — [velo\_aprx on hackernews](https://news.ycombinator.com/item?id=50320624)

> congratulations on rediscovering genetic algorithms in procedurally generated art. why learn the math and size coding optimizations that make the effects possible when you can just throw tokens at it and spend time filtering the garbage for the machine? what a time to be alive!
> — [psenough on hackernews](https://news.ycombinator.com/item?id=50320913)

> You miss the point. Demoscenes are for human creations. Leave AI out of it. Don't ruin yet another hobby. The community will never accept what you made.
> — [VCFundedGenYer on hackernews · 1 comments](https://news.ycombinator.com/item?id=50320645)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=50318442) · 39 points · 32 comments

## Similar posts on daily.dev

- [Turning Database Grading into RL Rewards: Post-Training Agents with ThinkingBox](https://daily.dev/posts/turning-database-grading-into-rl-rewards-post-training-agents-with-thinkingbox-wm41sfyzc) · Hugging Face · 2 upvotes · 0 comments
- [Show HN: Qwen3-4B with the AI writing tics trained out](https://daily.dev/posts/show-hn-qwen3-4b-with-the-ai-writing-tics-trained-out-qllmcxupg) · Hacker News · 6 upvotes · 0 comments
- [About DorsetHeatwaveLLM and a little behind the scenes](https://daily.dev/posts/about-dorsetheatwavellm-and-a-little-behind-the-scenes-s8mhnan42) · Medium · 0 upvotes · 0 comments

---

Tags: [#llm](https://daily.dev/tags/llm), [#deep-learning](https://daily.dev/tags/deep-learning), [#reinforcement-learning](https://daily.dev/tags/reinforcement-learning), [#creative-coding](https://daily.dev/tags/creative-coding)

[View this post on daily.dev](https://daily.dev/posts/i-post-trained-a-model-on-demoscenes-625xr8xdw)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"I post trained a model on Demoscenes","url":"https://daily.dev/posts/i-post-trained-a-model-on-demoscenes-625xr8xdw","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/i-post-trained-a-model-on-demoscenes-625xr8xdw"},"datePublished":"2026-10-31T21:52:21.928Z","dateModified":"2026-11-01T00:08:11.465Z","description":"A developer fine-tuned a 7B code model to generate demoscene-style JavaScript 'Dweets' from Dwitter.net, then used manual RLHF to inject personal aesthetic...","image":"https://media.daily.dev/image/upload/s--OHB84bZF--/f_auto/v1722860399/public/Placeholder%2010","thumbnailUrl":"https://media.daily.dev/image/upload/s--OHB84bZF--/f_auto/v1722860399/public/Placeholder%2010","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/i-post-trained-a-model-on-demoscenes-625xr8xdw","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"llm,deep-learning,reinforcement-learning,creative-coding","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"I post trained a model on Demoscenes"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/i-post-trained-a-model-on-demoscenes-625xr8xdw#faq","mainEntity":[{"@type":"Question","name":"How can I use RLHF to make a code-generation model match my personal aesthetic preferences?","acceptedAnswer":{"@type":"Answer","text":"One approach uses GRPO with yourself as the reward function: sample a group of candidate completions (e.g. eight per prompt), render them, manually pick the one you find most appealing, and use that preference to update the policy. Repeating this over about 9 to 10 rounds of 500 groups each, with roughly 40,000 animations manually inspected, measurably shifted a 7B code model's outputs toward the curator's taste. daily.dev surfaces hands-on RLHF workflows for developers steering models toward subjective, taste-driven goals."}},{"@type":"Question","name":"Does curriculum learning based on a popularity score improve a fine-tuned code model's outputs?","acceptedAnswer":{"@type":"Answer","text":"Yes, weighting training samples by a community 'awesomeness' score improved a model's predictions even on unseen examples. Starting all 5,000 ranked Dweets at equal 20% sampling weight per bucket, the top 1,000 grew to about 67% of sampling probability by step 400, and held-out perplexity fell from 7.42 to 5.65 across 7,000 Dweets, with gains spread across ranks. developers weighing curriculum-learning tricks for fine-tuning can track real benchmarked results on daily.dev."}},{"@type":"Question","name":"What base model and dataset size are needed to fine-tune an LLM on extremely short, code-golfed JavaScript snippets?","acceptedAnswer":{"@type":"Answer","text":"A 7B parameter base model, Qwen2.5-Code-7B, was continued-pretrained on 25,000 scraped 140-character JavaScript 'Dweets' from Dwitter.net's public API, plus about 1,300 held out for validation. The base model initially struggled badly with the code-golf syntax and mathematical shorthand typical of these snippets, but continued pretraining cut held-out perplexity from 28.63 to 8.57. anyone sizing a fine-tuning dataset for niche code styles can compare approaches like this via daily.dev."}}]}
```

