https://www.wasm.builders/dustinbrett/webassembly-in-my-browser-desktop-environment-3alc Skip to content Wasm Builders [ ] Log in Create account Wasm Builders Wasm Builders is a community of amazing builders Create account Log in * Home * Contact * Events * Learn * Meet the admins * Partners Other * Code of Conduct * Privacy Policy * Terms of Use Copy link Copied to Clipboard Share to Twitter Share to LinkedIn Share to Reddit Share to Hacker News Share to Facebook Share Post via... Report Abuse Cover image for WebAssembly in my Browser Desktop Environment Dustin Brett Dustin Brett Posted on Mar 28 WebAssembly in my Browser Desktop Environment #browser #showcase #opensource #learning For over a year now I've been working on daedalOS, my desktop environment in the browser. At the start of 2022 I published the app as my website for everyone to play with. Website: dustinbrett.com Source Code: daedalOS For the WebAssembly audience I wanted to discuss the many features I've integrated into my desktop environment which use WebAssembly. Here is a list in no particular order: x86 Emulation via v86 I support dragging .iso & .img files into the app which can be ran on v86. It also comes loaded with Kolibri and Linux. When an app is closed a snapshot of the current state is saved to /Users/Public/ Snapshots which is automatically loaded the next time the same image is opened. V86 running Kolibri DOS Emulation via js-dos For this app you can open any .zip or .jsdos file in it. If you don't provide a jsdos config file it will boot to the command prompt. I have some preloaded DOS shareware games such as Doom and Duke Nukem 3D. Like v86 it will save snapshots on close and reload them on reopen, but instead of loading the emulator state it just loads the directory contents such as save games. JS-DOS running Duke Nukem 3D WINE (16/32-bit) via Boxedwine This also supports .zip files and will try and run .exe too. It can run various apps as BoxedWine shows on their Apps and Games page. As an example I downloaded the latest 32-bit x86 Portable (zip) version of Notepad++, shown below. BoxedWine running Notepad++ Flash Emulation via Ruffle This app supports .swf and .spl files. I have a few fun demos on my site such as the Badger Badger Badger and Windows RG (Really Good Edition). Ruffle running Badger 7z/RAR/TAR Extraction via Libarchivejs I support .zip & .iso mounting through non-WebAssembly methods, so to handle .7z, .rar, .tar & .tar.gz I've added Libarchive.js. Extracting is done from the right click context menu on each file. Files extracted via Libarchive.js Audio/Video Conversion via ffmpeg.wasm Currently only supporting single thread because of the SharedArrayBuffer limitation and my desire to not deal with CORS issues. For video you can convert .avi, .flv, .m4v, .mov, .mp4, .mpeg, .ogv, .webm & .wmv. For audio it supports converting .aac, .aiff, .ape, .flac, .m4a, .mp3, .oga, .ogg .wav & .wma. These conversion options can be access via the context menu on each file. File converted from MP4 to MKV Image Conversion via WASM-ImageMagick Similar to audio/video, I support various formats of images that can be converted. They are .bmp, .gif, .ico, .jpg, .png, .psd, .tiff & .xcf. File converted from JPG to PNG Python via Pyodide I've added support to run .py scripts in the terminal. It's also possible to open the Terminal directly and run a command such as py import sys; sys.version to see the same result as this example script. Running a Python script WASI Modules via Wasmer JS I've added limited support to run wapm.io directly from the Terminal. Examples of commands that work well are wapm cowsay {Text} and wapm uuid. Running wapm commands in Terminal Space Cadet via SpaceCadetPinball Finally for a blast from the past I've added 3D Pinball Space Cadet which has been ported to many platforms including to WebAssembly. Playing Space Cadet The Future... Thanks for checking out my post/app!!! If you'd like to follow my progress as I continue to play with all things web/dev, please check out my YouTube channel. Here is my latest video where I discuss progress on this app: Discussion (5) Subscribe pic [ ] [ ] Upload image [Upload] [ ] Templates Personal Moderator loading Create template Templates let you quickly answer FAQs or store snippets for re-use. Submit Preview Dismiss joepio profile image Joep Meindertsma Joep Meindertsma [cGVn] Joep Meindertsma Follow * Joined Mar 28, 2022 * Mar 28 * Copy link * * Hide * * * Amazing project! 2 likes Reply dustinbrett profile image Dustin Brett Dustin Brett [cGVn] Dustin Brett Follow Hi, I'm Dustin, Self-Taught Software Engineer at Microsoft, World Traveler, Father & Husband * Location Canada * Joined Mar 28, 2022 * Mar 28 * Copy link * * Hide * * * Thanks! It's my passion project for the foreseeable future. 2 likes Reply cohix profile image Connor Hicks Connor Hicks [OTEwMWNiNW] Connor Hicks Follow * Location Ottawa, Canada * Joined Nov 3, 2021 * Mar 28 * Copy link * * Hide * * * This is fantastic! Thank you for sharing :) 1 like Reply quincarter profile image quincarter quincarter [cGVn] quincarter Follow * Joined Mar 28, 2022 * Mar 28 * Copy link * * Hide * * * This is really incredible. Fantastic job! WASM is awsm! 2 likes Reply dustinbrett profile image Dustin Brett Dustin Brett [cGVn] Dustin Brett Follow Hi, I'm Dustin, Self-Taught Software Engineer at Microsoft, World Traveler, Father & Husband * Location Canada * Joined Mar 28, 2022 * Mar 28 * Copy link * * Hide * * * Thank you very much! 1 like Reply Code of Conduct * Report abuse Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink. [ ] Hide child comments as well Confirm For further actions, you may consider blocking this person and/or reporting abuse Read next dinerdas profile image Great WebAssembly posts on DEV Diner Das - Mar 21 deepanshu1484 profile image Leveraging Network Communication with Enarx Deepanshu Arora - Mar 16 moksh_pathak profile image A Networking demo for WASI Moksh Pathak - Mar 15 divyamohan profile image Part #2: How to read WASM and maybe write it too. Divya Mohan - Feb 20 [cGVn] Dustin Brett Follow Hi, I'm Dustin, Self-Taught Software Engineer at Microsoft, World Traveler, Father & Husband * Location Canada * Joined Mar 28, 2022 Wasm Builders -- Learn, connect, and showcase everything to do with WebAssembly; an emerging technology powering web, cloud, IOT, and more! Built on Forem -- the open source software that powers DEV and other inclusive communities. Made with love and Ruby on Rails. Wasm Builders (c) 2021 - 2022. Wasm Builders Log in Create account