WebAssembly in my browser desktop atmosphere

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…

WebAssembly in my browser desktop atmosphere

Cover image for WebAssembly in my Browser Desktop Environment

Dustin Brett

For over a twelve months now I’ve been working on daedalOS, my desktop atmosphere within the browser. At the inspiration of 2022 I published the app as my online page for every person to play with.

Online online page: dustinbrett.com
Offer Code: daedalOS

For the WebAssembly viewers I wished to chat about the a immense number of components I’ve constructed-in into my desktop atmosphere which exhaust WebAssembly. Right here is a checklist in no particular boom:

x86 Emulation by skill of v86

I toughen dragging .iso & .img recordsdata into the app that can even honest be ran on v86. It moreover comes loaded with Kolibri and Linux. When an app is closed a snapshot of essentially the most traditional direct is saved to /Users/Public/Snapshots which is routinely loaded the subsequent time the the same image is opened.

V86 running Kolibri

DOS Emulation by skill of js-dos

For this app you are going to be ready to initiate any .zip or .jsdos file in it. Whenever you originate now not provide a jsdos config file this would possibly perhaps possibly also honest boot to the boom instructed. I get some preloaded DOS shareware games equivalent to Doom and Duke Nukem 3D. Love v86 this would possibly perhaps possibly also honest set snapshots on shut and reload them on reopen, nevertheless other than loading the emulator direct it accurate hundreds the checklist contents equivalent to set games.

JS-DOS running Duke Nukem 3D

WINE (16/32-bit) by skill of Boxedwine

This moreover helps .zip recordsdata and can strive to journey .exe too. It could journey diversified apps as BoxedWine shows on their Apps and Video games online page. Shall we suppose I downloaded essentially the most traditional 32-bit x86 Transportable (zip) version of Notepad++, shown below.

BoxedWine running Notepad++

Flash Emulation by skill of Ruffle

This app helps .swf and .spl recordsdata. I get a pair of fun demos on my establish equivalent to the Badger Badger Badger and Windows RG (In actuality Suited Model).

Ruffle running Badger

7z/RAR/TAR Extraction by skill of Libarchivejs

I toughen .zip & .iso mounting via non-WebAssembly programs, so that you just might well tackle .7z, .rar, .tar & .tar.gz I’ve added Libarchive.js. Extracting is performed from the very best click on context menu on every file.

Files extracted via Libarchive.js

Audio/Video Conversion by skill of ffmpeg.wasm

Currently only supporting single thread as a result of the SharedArrayBuffer limitation and my wish to now not take care of CORS points. For video you are going to be ready to convert .avi, .flv, .m4v, .mov, .mp4, .mpeg, .ogv, .webm & .wmv. For audio it helps converting .aac, .aiff, .ape, .flac, .m4a, .mp3, .oga, .ogg .wav & .wma. These conversion alternatives would possibly perhaps possibly also honest even be earn entry to by skill of the context menu on every file.

File converted from MP4 to MKV

Image Conversion by skill of WASM-ImageMagick

Similar to audio/video, I toughen diversified codecs of photos that can even be converted. They’re .bmp, .gif, .ico, .jpg, .png, .psd, .tiff & .xcf.

File converted from JPG to PNG

Python by skill of Pyodide

I’ve added toughen to journey .py scripts within the terminal. It’s moreover capability to initiate the Terminal at the moment and journey a boom equivalent to py import sys; sys.version to have a study the the same consequence as this case script.

Running a Python script

WASI Modules by skill of Wasmer JS

I’ve added restricted toughen to journey wapm.io at the moment from the Terminal. Examples of instructions that work correctly are wapm cowsay {Text} and wapm uuid.

Running wapm commands in Terminal

Space Cadet by skill of SpaceCadetPinball

At closing 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 sorting out my put up/app!!! Whenever you are seeking to practice my progress as I proceed to play with all things web/dev, please strive my YouTube channel. Right here is my most traditional video where I discuss progress on this app:

YouTube video

Read More



“Simplicity, patience, compassion.
These three are your greatest treasures.
Simple in actions and thoughts, you return to the source of being.
Patient with both friends and enemies,
you accord with the way things are.
Compassionate toward yourself,
you reconcile all beings in the world.”
― Lao Tzu, Tao Te ChingBio: About: