{"id":13473117,"url":"https://github.com/binji/raw-wasm","last_synced_at":"2025-04-06T01:09:26.581Z","repository":{"id":40788925,"uuid":"189354269","full_name":"binji/raw-wasm","owner":"binji","description":"Raw WebAssembly demos","archived":false,"fork":false,"pushed_at":"2023-11-15T08:22:06.000Z","size":601,"stargazers_count":441,"open_issues_count":0,"forks_count":18,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-03-30T00:08:17.077Z","etag":null,"topics":["binary","tinycode","wasm","webassembly"],"latest_commit_sha":null,"homepage":"https://binji.github.io/raw-wasm","language":"WebAssembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/binji.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-30T05:56:27.000Z","updated_at":"2025-03-23T15:20:04.000Z","dependencies_parsed_at":"2024-10-30T03:51:58.179Z","dependency_job_id":null,"html_url":"https://github.com/binji/raw-wasm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binji%2Fraw-wasm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binji%2Fraw-wasm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binji%2Fraw-wasm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binji%2Fraw-wasm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/binji","download_url":"https://codeload.github.com/binji/raw-wasm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247419860,"owners_count":20936012,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binary","tinycode","wasm","webassembly"],"created_at":"2024-07-31T16:01:00.945Z","updated_at":"2025-04-06T01:09:26.551Z","avatar_url":"https://github.com/binji.png","language":"WebAssembly","funding_links":[],"categories":["WebAssembly"],"sub_categories":[],"readme":"# Raw WebAssembly Demos\n\n## Quine\n\nA little WebAssembly [quine][9]. Without a way to do output, I decided that a\nWebAssembly quine should export a memory object with a copy its bytes. [**148 bytes**]\n\n[Demo!][10]\n\n## Doomfire\n\nAn implementation of the Doom fire effect described in\n[Fabien Sanglard's blog][1], using hand-written WebAssembly. [**398 bytes**]\n\n[Demo!][2]\n\n## JIT\n\nA *very* simple expression compiler using the [Shunting Yard algorithm][23].\nIt parses an infix expression, compiles it to WebAssembly, then copies\nthe generated function into the original WebAssembly module. [**449 bytes**]\n\n[Demo!][24]\n\n## Metaball\n\nAn implementation of the metaball effect described in [Jamie Wong's blog][3],\nusing hand-written WebAssembly. Unlike the implementation described there, this\njust updates every pixel. [**452 bytes**]\n\n[Demo!][4]\n\n## Inflate\n\nAn implementation of the INFLATE algorithm, as specified in [RFC1951][17]. It\nuses some tricks from [Piotr Fusik's 6502 implementation][18], such as storing\nthe literal and distance huffman trees in the same array, and programmatically\ncalculating the length/distance encoding rather than using tables. [**991 bytes**]\n\n[Demo!][19]\n\n## Chip-8\n\nA [CHIP-8 interpreter][11], with support for the original chip-8 instruction\nset. It starts up with a simple demo I wrote (thanks, [Octo][15]!). You can\nalso try some of the public domain games and demos at [dmatlack/chip8][12] and\nthe [CHIP-8 archive][13]. [**1040 bytes**]\n\n[Demo!][14]\n\n## Raytrace\n\nA simple raytracer, using techniques from [tinyraytracer][5], in hand-written\nWebAssembly. 4 spheres, 1 light, reflections, and shadows. [**1486 bytes**]\n\n[Demo!][6]\n\n## Snake\n\nA snake-eats-the-dots game, but with 360° rotation. Use left and right arrow\nkeys, or tap on the left or right side of the screen to turn. [**1976 bytes**]\n\n[Demo!][7]\n\n## Dino\n\nA dinosaur endlessly running through the desert, jumping over cacti and\npterodactyls. Graphics are compressed using a LZ77-like algorithm. [**2020 bytes**]\n\n[Demo!][16]\n\n## Maze\n\nA Wolfenstein-style 3d maze race. Each ray is tested against all walls,\nbrute-force style. Walls, floors and ceilings are textured. Palettes are made\nup of 120-levels of brightness, which fade into black in the distance. [**2047 bytes**]\n\n[Demo!][8]\n\n## Match3\n\nAn implementation of a [match 3][20]-style game, with an 8x8 grid and 8\ndifferent emojis. [**2662 bytes**]\n\n[Demo!][21]\n\n## Mod\n\nA mod music player, based on code from [micromod][25]. Supports most effects.\n[**2840 bytes**]\n\n[Demo!][26]\n\n## BadGB\n\nA very simple gameboy emulator that only plays a few games. [**3072 bytes**]\n\n[Demo!][22]\n\n[1]: http://fabiensanglard.net/doom_fire_psx/index.html\n[2]: https://binji.github.io/raw-wasm/doomfire\n[3]: http://jamie-wong.com/2014/08/19/metaballs-and-marching-squares/\n[4]: https://binji.github.io/raw-wasm/metaball\n[5]: https://github.com/ssloy/tinyraytracer/wiki/Part-1:-understandable-raytracing\n[6]: https://binji.github.io/raw-wasm/raytrace\n[7]: https://binji.github.io/raw-wasm/snake\n[8]: https://binji.github.io/raw-wasm/maze\n[9]: https://en.wikipedia.org/wiki/Quine_(computing)\n[10]: https://binji.github.io/raw-wasm/quine\n[11]: https://en.wikipedia.org/wiki/CHIP-8\n[12]: https://github.com/dmatlack/chip8/tree/master/roms\n[13]: https://johnearnest.github.io/chip8Archive/?sort=platform\n[14]: https://binji.github.io/raw-wasm/chip8\n[15]: http://johnearnest.github.io/Octo\n[16]: https://binji.github.io/raw-wasm/dino\n[17]: https://tools.ietf.org/html/rfc1951\n[18]: https://github.com/pfusik/zlib6502\n[19]: https://binji.github.io/raw-wasm/inflate\n[20]: https://en.wikipedia.org/?title=Match-3\u0026redirect=no\n[21]: https://binji.github.io/raw-wasm/match3\n[22]: https://binji.github.io/raw-wasm/badgb\n[23]: https://en.wikipedia.org/wiki/Shunting_yard_algorithm\n[24]: https://binji.github.io/raw-wasm/jit\n[25]: https://github.com/martincameron/micromod\n[26]: https://binji.github.io/raw-wasm/mod\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinji%2Fraw-wasm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbinji%2Fraw-wasm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinji%2Fraw-wasm/lists"}