Skip to content
HN On Hacker News ↗

2025 - The 29th IOCCC

▲ 430 points • 99 comments • by matt_d • 5mo ago • HN discussion ↗

Pangram verdict · v3.3

We believe that this document is fully human-written

0 %

AI likelihood · overall

Human
100% human-written 0% AI-generated
SEGMENTS · HUMAN 5 of 5
SEGMENTS · AI 0 of 5
WORD COUNT 1,442
PEAK AI % 0% · §5
Analyzed
Jun 7
backend: pangram/v3.3
Segments scanned
5 windows
avg 288 words each
Distribution
100 / 0%
human / AI fraction
Verdict
Human
Pangram v3.3

Article text · 1,442 words · 5 segments analyzed

Human AI-generated
§1 Human · 0%

Twenty Ninth International Obfuscated C Code Contest Where to start See below for links to the 2025 winning IOCCC entries. Check out the index.html web pages for each winning entry. They have most of the information you need to compile and run the winning program. Take a look at the winning source code and try to figure out how it works. You might also want to check out the author’s remarks for even more details. You may download all winning entries in the form of a compressed tarball for this year’s contest.

For IOCCC29, the volume and quality of submissions were at near-historic heights. IOCCC28 was speculated to have attracted a record number of submissions due to the 4-year absence, allowing authors to refine their submissions, resulting in a higher-than-usual submission quality. IOCCC29 was the second consecutive contest after the 2020-2024 hiatus. And yet, the number of submissions for IOCCC29 was similar to last year’s contest, and the overall submission quality remained high for this contest. So perhaps the increased submission volume, combined with a higher-than-usual submission quality, is due to factors such as improved website design, increased social media presence, authors building on the ideas of past winning entries, and other factors? Starting with the close of IOCCC28, the procedures used for closing the contest to new submissions, the judging process, selecting the winning entries, preparing the update to the website, and the process to create the live show on the Our Favorite Universe were carefully documented. And while this documentation required additional time as well as more effort, the documentation process resulted in overall improvements to how the IOCCC is run. A few days after the presentation of the winning entries for IOCCC29 has been made on the Our Favorite Universe YouTube channel. The recording of the main show will be divided up into individual segments. Then, each winning entry will be updated to include a link to a YouTube segment under a new Award presentation near the top of the winning entry’s index.html page.

Fun challenge info

We have added fun challenges to this year’s winning entries competition, under the “Judges’ remarks” section.

§2 Human · 0%

After you figure out what a given winning entry does, we encourage you to attempt the fun challenge. Some of these challenges are easier than others. In some cases, you’re asked to create an alternative version of prog.c or a related file. In some cases you are asked to produce an explanation about something. If the fun challenge is still open (check the “A fun challenge” section for the given winning entry), consider submitting a GitHub pull request as a contribution. If the fun challenge is closed, but you think you have a better solution, consider submitting a GitHub pull request as a contribution. If the IOCCC Judges agree that you solution is better, we will consider it. If you believe you have an even better (or improvement) to winning entry’s fun challenge, please consider submitting a GitHub pull request, for the IOCCC judges to consider. Rules and Guidelines for this contest The final versions of the IOCCC rules and guidelines that were in effect for this contest were:

2025 rules version 29.15 2025-12-02 2025 guidelines version 29.08 2025-12-02

The IOCCC rules and guidelines for IOCCC29 represented a substantial rewrite over previous contests, thanks in part to a number of volunteers: giving the IOCCC judges useful edits, text rewrites, consolidation, as well as overall improved organization. Looking forward to the next contest We plan to open IOCCC30 towards the end of 2026 and have the contest run for a similar amount of time, closing sometime towards the end of Q1 2027. As we perform the actions needed to open IOCCC30, we plan to internally document the process as we did during the closing of IOCCC29.

About two or three weeks after the IOCCC29 winning entries have been posted, and we process some of the early pull requests against the 2025 directory tree, the IOCCC Judges plan to go on an IOCCC vacation.

§3 Human · 0%

We had intended to go on an IOCCC vacation after releasing the winners of IOCCC28, but then the efforts to process bug fixes and enhancements to the mkiocccentry repo took so much time that by the time that repo was stable, it was time to open IOCCC29. Therefore, this time, we plan to wait until after the end of our post-IOCCC29 IOCCC vacation before working on any mkiocccentry repo PRs.

While working on creating potential write-ups for submissions that entered the final round of the set of judging rounds:

A few submissions were set aside in the final round of the final set of rounds. We gained an additional level of appreciation for a number of the remaining entries.

While the winning entry authors came from locations of previous winning authors, this IOCCC29 had an author - jingp49 from a new location: Taiwan. This contest saw a Hat trick of Hat-tricks by:

Yusuke Endoh: 2025/endoh1, 2025/endoh2, and 2025/endoh3 Nick Craig-Wood: 2025/ncw1, 2025/ncw2, and 2025/ncw3 Don Yang: 2025/yang1, 2025/yang2, and 2025/yang3

Notable and remarkable winning entries of IOCCC29 include, but are not limited to:

2025/cable - Subleq computer 2025/cesmoak - Black hole punchcard Fortran 2025/endoh3 - patch/diff quine 2025/jhshrvdp - Quasi-rogue-like game 2025/jingp49 - Dr. WHO sequence 2025/ncw1 - GameBoy emulator 2025/tompng - Ocean sound generator 2025/uellenberg - Quine pong 2025/yang2 - Zoltraak encoding

Those are just a few of the many amazing winners of the IOCCC29, so be sure to check out the rest!

§4 Human · 0%

As we discussed above, there were quite a few excellent submissions that didn’t quite make the final cut. We truly appreciate the hard work each author put into their entries, but we’re sorry that we can’t award based solely on effort. We received many great submissions that didn’t quite make the cut as winners. If you submitted something for IOCCC29 that didn’t win, think about polishing your code and giving it another shot for IOCCC30. Interestingly, more than one winner of IOCCC29 was actually an improved version of code that didn’t win in a previous contest. Encouragement for those who did not win this year We know many of you that submitted to the IOCCC put in a ton of effort into your submissions for this year’s IOCCC. We can’t just give out awards to everyone. That would mean taking away from the submissions that we think are the best and deserve to win. Sometimes, a final round submission might be good enough to be a winning IOCCC entry, only to be beaten by a similar, but slightly better submission. If you think this happened with your submission, consider submitting an enhanced version to the next IOCCC. PLEASE DO NOT give up hope! There are some submissions that have been submitted with revisions, multiple times before rising to the level of a winning IOCCC entry. You might also want to try with a different type of submission altogether for the next IOCCC. If you’re not planning to improve and resubmit your non-winning entry for the next IOCCC, you’re welcome to publish it. On compiling and running winning entries Some C compilers aren’t as great as they could be. If yours isn’t working well, you might want to try compiling with an updated version of clang and/or gcc instead. If you encounter problems in compiling and/or running the winning entries, see the FAQ on:

Compiling IOCCC entries IOCCC entry dependencies Problems compiling entries Running IOCCC entries

For additional information on how to submit fixes, see the FAQ on:

How to submit a fix - how to submit a fix to an entry Update author information - how to correct or update an

§5 Human · 0%

IOCCC author’s information

For even more information

Reporting an IOCCC website problem Submitting a fix to the IOCCC website How to contact the IOCCC - up-to-date contact details IOCCC FAQ - additional information on the IOCCC www.ioccc.org - the primary IOCCC website

Winning Entries of 2025 - The 29th IOCCC

Download all winning entries from 2025

2025/ayu - IMO award 2025/cable - Best imaginary emulator 2025/cesmoak - Retro space award 2025/diels-grabsch - Best one liner 2025/dogon - Consistently constant award 2025/endoh1 - Most likely to dazzle 2025/endoh2 - Most likely to shock 2025/endoh3 - Most resilient 2025/ferguson - Opposite award 2025/howe - Most likely to invade 2025/jhshrvdp - Most likely to teleport 2025/jingp49 - Who won award 2025/kurdyukov - Most likely to count 2025/mattpep - Most obfuscated options 2025/ncw1 - Best real emulator 2025/ncw2 - Best fractional emulator 2025/ncw3 - Best use of Unicode 2025/tompng - Most soothing 2025/uellenberg - Ping pong prize 2025/yang1 - Compound prize 2025/yang2 - Most magical word 2025/yang3 - INABIAF award

Jump to: top