{"id":8253,"date":"2026-02-24T15:43:57","date_gmt":"2026-02-24T10:13:57","guid":{"rendered":"https:\/\/www.suramya.com\/blog\/?p=8253"},"modified":"2026-02-24T18:58:26","modified_gmt":"2026-02-24T13:28:26","slug":"you-can-now-run-an-actual-x86-simulator-in-a-browser-using-css-without-any-javascript","status":"publish","type":"post","link":"https:\/\/www.suramya.com\/blog\/2026\/02\/you-can-now-run-an-actual-x86-simulator-in-a-browser-using-css-without-any-javascript\/","title":{"rendered":"You can now run an actual x86 Simulator in a Browser using CSS without any Javascript"},"content":{"rendered":"<p>When I think of CSS (Cascading Style Sheets) I think of it as a way to change presentation and styling of a web page, but it looks like it is a full fledged programming language now that can run an entire x86 CPU emulator without using any Javascript. <\/p>\n<p><a href=\"https:\/\/lyra.horse\/\">Lyra Rebane<\/a> managed this feat where you can write programs in C, compile them to x86 machine code with GCC, and run them inside CSS. A demo is available at: <a href=\"https:\/\/lyra.horse\/x86css\/\">https:\/\/lyra.horse\/x86css\/<\/a>. The demo doesn&#8217;t work in Firefox but works great in Chrome\/Chromium based browsers. <\/p>\n<p>Lyra is going to post a blog in the near future explaining how it all works and I for one am eagerly waiting for it because this is a phenomenal achievement. <\/p>\n<blockquote><p>\n<strong>How??<\/strong><\/p>\n<p>I plan on writing a blog post that explains how this works as well as many of the tricks used. Bookmark my blog or add it to your RSS reader.<br \/>\nSurely you still need a little bit of JavaScript?<\/p>\n<p><strong>Nope, this is CSS-only<\/strong>!<\/p>\n<p>There is a script tag on this site, which is there to provide a clock to the CSS &#8211; but this is only there to make the entire thing a bit faster and more stable. The CSS also has a JS-less clock implementation, so if you disable scripts on this site, it will still run. JavaScript is not required.<\/p>\n<p>My CSS clock uses an animation combined with style container queries, which means you don&#8217;t need to interact with anything for the program to run, but it also means its a bit slower and less stable as a result. A hover-based clock, such as the one in Jane Ori&#8217;s CPU Hack, is fast and stable, but requires you to hold your mouse on the screen, which some people claim does not count as turing complete for whatever reason, so I wanted this demo to be fully functional with zero user input.<\/p><\/blockquote>\n<p>Source: <a href=\"https:\/\/infosec.exchange\/users\/rebane2001\/statuses\/116123227412288110\">@rebane2001@infosec.exchange<\/a><\/p>\n<p>&#8211; Suramya<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When I think of CSS (Cascading Style Sheets) I think of it as a way to change presentation and styling of a web page, but it looks like it is a full fledged programming language now that can run an entire x86 CPU emulator without using any Javascript. Lyra Rebane managed this feat where you [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":""},"categories":[2],"tags":[],"class_list":["post-8253","post","type-post","status-publish","format-standard","hentry","category-techie-stuff"],"_links":{"self":[{"href":"https:\/\/www.suramya.com\/blog\/wp-json\/wp\/v2\/posts\/8253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.suramya.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.suramya.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.suramya.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.suramya.com\/blog\/wp-json\/wp\/v2\/comments?post=8253"}],"version-history":[{"count":3,"href":"https:\/\/www.suramya.com\/blog\/wp-json\/wp\/v2\/posts\/8253\/revisions"}],"predecessor-version":[{"id":8258,"href":"https:\/\/www.suramya.com\/blog\/wp-json\/wp\/v2\/posts\/8253\/revisions\/8258"}],"wp:attachment":[{"href":"https:\/\/www.suramya.com\/blog\/wp-json\/wp\/v2\/media?parent=8253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.suramya.com\/blog\/wp-json\/wp\/v2\/categories?post=8253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.suramya.com\/blog\/wp-json\/wp\/v2\/tags?post=8253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}