{"id":13426056,"url":"https://github.com/morgan3d/quadplay","last_synced_at":"2025-05-15T05:07:54.078Z","repository":{"id":44425987,"uuid":"189204570","full_name":"morgan3d/quadplay","owner":"morgan3d","description":"The quadplay✜ fantasy console","archived":false,"fork":false,"pushed_at":"2025-02-16T06:51:51.000Z","size":81244,"stargazers_count":903,"open_issues_count":0,"forks_count":44,"subscribers_count":28,"default_branch":"main","last_synced_at":"2025-04-14T08:11:57.801Z","etag":null,"topics":["2d-game-engine","browser","emulator","fantasy-console","font","fonts","game","game-development","game-engine","games","ide","jetson-nano","linux","macos","pico8","quadplay","raspberrypi","retro","sprite","windows"],"latest_commit_sha":null,"homepage":"https://morgan3d.github.io/quadplay/console/quadplay.html?IDE=1","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/morgan3d.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","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,"zenodo":null},"funding":{"github":"morgan3d","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2019-05-29T10:34:03.000Z","updated_at":"2025-04-09T13:03:53.000Z","dependencies_parsed_at":"2024-06-23T20:43:59.853Z","dependency_job_id":"c137f6a9-a452-4b51-8946-237574249a20","html_url":"https://github.com/morgan3d/quadplay","commit_stats":{"total_commits":547,"total_committers":4,"mean_commits":136.75,"dds":"0.15356489945155394","last_synced_commit":"b7f6cda05fa67d3925e60861f93a2566bd729487"},"previous_names":[],"tags_count":87,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morgan3d%2Fquadplay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morgan3d%2Fquadplay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morgan3d%2Fquadplay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/morgan3d%2Fquadplay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/morgan3d","download_url":"https://codeload.github.com/morgan3d/quadplay/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254276447,"owners_count":22043867,"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":["2d-game-engine","browser","emulator","fantasy-console","font","fonts","game","game-development","game-engine","games","ide","jetson-nano","linux","macos","pico8","quadplay","raspberrypi","retro","sprite","windows"],"created_at":"2024-07-31T00:01:25.358Z","updated_at":"2025-05-15T05:07:49.064Z","avatar_url":"https://github.com/morgan3d.png","language":"JavaScript","readme":"**quadplay✜** is a fantasy console by [CasualEffects](https://casual-effects.com)\nfor creating and playing retro-style video games on any device.\n\n- [Play games online](https://morgan3d.github.io/quadplay/console/quadplay.html?)\n- [Install on Windows](https://morgan3d.github.io/quadplay/tools/windows-install-quadplay.cmd)\n- [Install on macOS or Linux](https://github.com/morgan3d/quadplay/archive/main.zip)\n- [Preview the web IDE](https://morgan3d.github.io/quadplay/console/quadplay.html?IDE=1\u0026game=quad://games/quadpaddle)\n- [Read the manual](https://morgan3d.github.io/quadplay/doc/manual.md.html)\n\n![](doc/emulator.png)\n\n\nPlatforms\n========================================================\n\nCreate and play games on any laptop, desktop, tablet, or phone. Or,\nbuild your own programmable arcade machine from a Raspberry Pi, Tegra,\nor old computer. Here are some of the many supported quadplay\nplatforms:\n\n\u003cimg src=\"doc/laptop.jpg\" height=180\u003e \u003cimg src=\"doc/desktop.jpg\" height=180\u003e \u003cimg src=\"doc/phone.jpg\" height=180\u003e \u003cimg src=\"doc/rpi-arcade.jpg\" height=180\u003e \u003cimg src=\"doc/steamdeck.jpg\" height=180\u003e \u003cimg src=\"doc/arcade.jpg\" height=180\u003e \u003cimg src=\"doc/xarcade-arcade.jpg\" height=180\u003e \u003cimg src=\"doc/nano-arcade.jpg\" height=180\u003e \u003cimg src=\"doc/quad-arcade.jpg\" height=180\u003e \u003cimg src=\"doc/gpd-win3.jpg\" height=180\u003e \u003cimg src=\"doc/gpd-win.jpg\" height=180\u003e \u003cimg src=\"doc/postgoodism.jpg\" height=180\u003e\n\nGames\n========================================================\n\nFull\n--------------------------------------------------------\nThese full games are included, with source\ncode. Click to play:\n\n[\u003cimg src=\"games/across_the_lake/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/across_the_lake) [\u003cimg src=\"games/duality/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/duality) [\u003cimg src=\"games/minimecha/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/minimecha) [\u003cimg src=\"games/icetime/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/icetime) [\u003cimg src=\"games/beat_the_gobblins/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/beat_the_gobblins) [\u003cimg src=\"games/rescue_roguelike/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/rescue_roguelike) [\u003cimg src=\"games/friendly_fishing/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/friendly_fishing) [\u003cimg src=\"games/quadpaddle/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/quadpaddle) [\u003cimg src=\"games/doublesdepon/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/doublesdepon) [\u003cimg src=\"games/rps/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/rps) [\u003cimg src=\"games/serpitron/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/serpitron) [\u003cimg src=\"games/hexflipper/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/hexflipper) [\u003cimg src=\"games/but_skunks/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/but_skunks) [\u003cimg src=\"games/beyond_control/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/beyond_control) [\u003cimg src=\"games/gravity/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/gravity) [\u003cimg src=\"games/firmament/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/firmament) [\u003cimg src=\"games/drop_bloq/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=games/drop_bloq\u0026IDE=1\u0026autoplay=1)\n\n\nExamples\n--------------------------------------------------------\nThese short example programs demonstrate specific quadplay\nfeatures and programming techniques.\n\n[\u003cimg src=\"examples/rpg/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/rpg\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/animation/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/animation\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/physics/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/physics\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/physics_arrow/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/physics_arrow\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/robot/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/robot\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/piano/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/piano\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/dynamic_accel/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/dynamic_accel\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/boids/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/boids\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/camera_shake/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/camera_shake\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/zoom/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/zoom\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/clouds/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/clouds\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/dark_drive/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/dark_drive\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/dual-stick/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/dual-stick\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/entity/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/entity\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/fluid/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/fluid\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/fontpreview/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/fontpreview\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/gridmove/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/gridmove\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/helloworld/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/helloworld\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/highscore/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/highscore\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/input/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/input\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/kart/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/kart\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/lift_team/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/lift_team\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/perceptual_color/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/perceptual_color\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/planetgen/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/planetgen\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/roguelike/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/roguelike\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/sequence_demo/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/sequence_demo\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/speedstreet/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/speedstreet\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/spritestack/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/spritestack\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/sproing/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/sproing\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/starter/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/starter\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/text/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/text\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/touch/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/touch\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/countdown/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/countdown\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/track_mouse/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/track_mouse\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/twin_analog/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/twin_analog\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/vaporwave/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/vaporwave\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/vehicles/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/vehicles\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/warlock3D/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/warlock3D\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/word_game/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/word_game\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/zcar/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/zcar\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/zoom/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/zoom\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/change_res/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/change_res\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/cards/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/cards\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/dice/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/dice\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/zoom2D/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/zoom2D\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/private_view/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/private_view\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/textspheres/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/textspheres\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/midi_starrypad/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/midi_starrypad\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/midi_fcb1010/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/midi_fcb1010\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/midi_launchpad/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/midi_launchpad\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/islands/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/islands\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/maze/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/maze\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/platformer/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/platformer\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/multitouch/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/multitouch\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/midi_8x8/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/midi_8x8\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/hex/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/hex\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/anim_entity_example/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/anim_entity_example\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/bezier_eye_creature/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/bezier_eye_creature\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/color_wheel/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/color_wheel\u0026IDE=1\u0026autoplay=1) [\u003cimg src=\"examples/coordinate_system/label128.png\"\u003e](https://morgan3d.github.io/quadplay/console/quadplay.html?game=examples/coordinate_system\u0026IDE=1\u0026autoplay=1)\n\nFeatures\n========================================================\n\n- Create games on Windows, macOS, Linux\n- Play your games in any modern web browser on a laptop, desktop, tablet, phone, Raspberry Pi 4, or Jetson Nano\n- 60 fps @ 384 x 224 pixels = 12:7 aspect ≈ 16:9.3\n- 4096 sRGB (4:4:4) colors\n- Four players with virtual controls for D-pad and eight buttons\n- Local and safe online multiplayer\n- Supports Xbox, Playstation, SNES, Stadia, Switch, 8bitdo, touch screen, and other controllers\n- Hundreds of built-in sprites, sounds, and fonts\n- Program in PyxlScript, a friendly Python-like language\n- Order-independent, 4-bit alpha transparency\n- Native 2.5D graphics with z-order\n- 9.4 MB of total sprite memory\n- Up to 64 sprite and font sheets of up to 1024x1024\n- Optional 640 x 360, 384 x 224, 320 x 180, 192 x 112, 128 x 128, and [64 x 64](https://itch.io/jam/lowrezjam-2019) screen modes\n- Free and open source\n\n\nJoin the Quadplay Revolution\n========================================================\n\nYou can use an external editor (like VSCode) or simply work entirely\nwithin the provided the browser-based development environment.\n\nTo get started, you'll need Windows, macOS, Linux, or Raspberry Pi OS\nand the following freely-available software.\n\n_Required_:\n\n- [**This SDK**](https://github.com/morgan3d/quadplay/archive/main.zip), which includes the IDE and assets\n- [**Python 3.13**](https://www.python.org/downloads/)\n- A **modern web browser** such as Chrome, Edge, Brave, Safari, or Firefox\n- On some Linux distributions you might need to install `tkinter`, e.g. on Fedora `sudo dnf install -y python3-tkinter`\n\n_Optional_:\n\n- [**The manual**](https://morgan3d.github.io/quadplay/doc/manual.md.html)\n- A **code editor** such as [VS Code](https://code.visualstudio.com/), Emacs, or VIM. Use Python mode or install our provided PyxlScript editor extensions\n- A TMX map editor such as [Tiled](https://www.mapeditor.org/) or [TileKit](https://rxi.itch.io/tilekit)\n- A sprite and font pixel editor such as [Piskel](https://www.piskelapp.com/) or [GrafX2](http://pulkomandy.tk/projects/GrafX2/downloads?order=version\u0026desc=1)\n- A [SFX generator](https://www.bfxr.net/) and audio editor such as [Audacity](https://www.audacityteam.org/)\n- An account on the [forums](http://quadplay.freeforums.net)\n- Follow development online at [@CasualEffects](https://twitter.com/CasualEffects)\n\nSee the manual for a getting started guide, the change log, road map,\nand notes.\n\n\nLicense\n========================================================\n\nThe quadplay✜ runtime, compiler, and emulator are licensed as\n[LGPL3](https://www.gnu.org/licenses/lgpl-3.0.en.html). \n\nYou can create closed-source games with it and distribute your games\nhowever you want, including commercially. \n\nIf you modify the runtime library, compiler, or emulator, then you\nmust redistribute those changes under the LGPL3.\n\nPortions of the IDE are under different, less-restrictive\nopen source licenses (BSD, MIT, and public domain).\n\nQuadplay automatically adds asset and library licenses to your\ngame's credits screen. You don't have to do any work to satisfy\nattribution clauses from open source or Creative Commons licenses.\n\nAll sounds, sprites, and games distributed with quadplay✜ are Creative\nCommons licensed. The copyright and license on each of those is in \na JSON file next to the asset.\n\n© 2020-2025 Morgan McGuire\n","funding_links":["https://github.com/sponsors/morgan3d"],"categories":["JavaScript","Emulators \u0026 Virtual Machines"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorgan3d%2Fquadplay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmorgan3d%2Fquadplay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorgan3d%2Fquadplay/lists"}