#WebAssembly

Evan Hahn's avatar
Evan Hahn

@EvanHahn@bigshoulders.city

My notes from January 2026: started a new job at Ghost, published a WebAssembly module, set every Vim configuration option, and applauded general strikes. evanhahn.com/notes-from-januar

Jonas Kruckenberg :tauri:'s avatar
Jonas Kruckenberg :tauri:

@unsafe@m.webtoo.ls

hell yeah! a full day of high performance sandboxing!!

you should get your employer to pay for this one! its going to be great 😁


fosstodon.org/@mainmatter/1159

Jonas Kruckenberg :tauri:'s avatar
Jonas Kruckenberg :tauri:

@unsafe@m.webtoo.ls

hell yeah! a full day of high performance sandboxing!!

you should get your employer to pay for this one! its going to be great 😁


fosstodon.org/@mainmatter/1159

洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

Hongdown 0.2.0 is out! Hongdown is an opinionated formatter written in , and this release brings support, so you can now use it as a library in .js, , , and browsers.

New features:

  • Smart heading sentence case conversion with ~450 built-in proper nouns
  • SmartyPants-style typographic punctuation ("straight"“curly”)
  • External code formatter integration for code blocks
  • Directory argument support for batch formatting

Try it in the browser: https://dahlia.github.io/hongdown/

Release notes: https://github.com/dahlia/hongdown/discussions/10

洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

Hongdown 0.2.0 is out! Hongdown is an opinionated formatter written in , and this release brings support, so you can now use it as a library in .js, , , and browsers.

New features:

  • Smart heading sentence case conversion with ~450 built-in proper nouns
  • SmartyPants-style typographic punctuation ("straight"“curly”)
  • External code formatter integration for code blocks
  • Directory argument support for batch formatting

Try it in the browser: https://dahlia.github.io/hongdown/

Release notes: https://github.com/dahlia/hongdown/discussions/10

elementary.codes's avatar
elementary.codes

@elementarycodes@mastodon.social

Fresh out of the oven: ElementaryUI 0.1 — a frontend framework written in Swift, running in the browser via WebAssembly.

elementary.codes

elementary.codes's avatar
elementary.codes

@elementarycodes@mastodon.social

Fresh out of the oven: ElementaryUI 0.1 — a frontend framework written in Swift, running in the browser via WebAssembly.

elementary.codes

Thinking Elixir's avatar
Thinking Elixir

@ThinkingElixir@genserver.social

News includes running #LiveView in the browser with #WebAssembly, New Nerves book launches in beta, PinStripe for @stripe integration, Beam Bots for robotics, @sasajuric@hachyderm.io’s #Goatmire talk, Tidewave updates, and more! #ElixirLang @elixirlang https://www.youtube.com/watch?v=8-f3sUMxgXI
Thinking Elixir's avatar
Thinking Elixir

@ThinkingElixir@genserver.social

News includes running #LiveView in the browser with #WebAssembly, New Nerves book launches in beta, PinStripe for @stripe integration, Beam Bots for robotics, @sasajuric@hachyderm.io’s #Goatmire talk, Tidewave updates, and more! #ElixirLang @elixirlang https://www.youtube.com/watch?v=8-f3sUMxgXI
Oto Šťáva's avatar
Oto Šťáva

@alefunguju@mastodon.social

A short introductory blog post about Fruits & Tails, our little video game.

spiffyk.cz/blog/fruits-and-tai

Oto Šťáva's avatar
Oto Šťáva

@alefunguju@mastodon.social

A short introductory blog post about Fruits & Tails, our little video game.

spiffyk.cz/blog/fruits-and-tai

Manav Rathi's avatar
Manav Rathi

@mnvr@mastodon.social

"Maintain the versionless, feature-tested and backwards-compatible evolution story of the Web"

Love this phrasing from the WebAssembly docs. It's easy to forget how unique and decentralized the web actually is, and how entropy-defying gift we all have had. Seeing the wasm folks pay homage to the web is great!

Screenshot from webassembly.org highlighting "maintaining the versionless; feature-tested and backwards-compatible evolution story of the Web"
ALT text detailsScreenshot from webassembly.org highlighting "maintaining the versionless; feature-tested and backwards-compatible evolution story of the Web"
Harry Sintonen's avatar
Harry Sintonen

@harrysintonen@infosec.exchange

This is quite neat: Second Reality C++ port made it possible to compile the demo to run in a web browser: jsr-productions.com/secondreal (click inside the view to start it)

- Main page: jsr-productions.com/secondreal
- Source code: github.com/XorJS/SecondReality
- Original Second Reality (1993) demo at pouet: pouet.net/prod.php?which=63

Harry Sintonen's avatar
Harry Sintonen

@harrysintonen@infosec.exchange

This is quite neat: Second Reality C++ port made it possible to compile the demo to run in a web browser: jsr-productions.com/secondreal (click inside the view to start it)

- Main page: jsr-productions.com/secondreal
- Source code: github.com/XorJS/SecondReality
- Original Second Reality (1993) demo at pouet: pouet.net/prod.php?which=63

Arne Babenhauserheide's avatar
Arne Babenhauserheide

@ArneBab@rollenspiel.social

in a toot: how to deploy as static website via (complete example).

The code from the two attached images, as written, runs on
draketo.de/software/hoot.html

Try it out!

It’s two pages from Naming & Logic: Programming Essentials with Wisp.

printed: epubli.com/shop/naming-and-log
website: draketo.de/software/programmin

This adds parallel fetches (do you see where?). If you adopt it, make sure your server compresses application/wasm.

*Browser again: clientside wasm.* @@html:<a id="deploy-hoot-wasm" name="deploy-hoot-wasm"></a>@@
To run clientside, you can package your project with [[https://spritely.institute/hoot/][Hoot]]: build an interface and compile to wasm:

#+begin_src wisp :results output :tangle hoot.w
;; file: hoot.w
use-modules : hoot ffi ;; guile specific import

;; the interface
define-foreign document-body "document" "body"
  . -> (ref null extern)
define-foreign make-text-node "document" "createTextNode"
  . (ref string) -> (ref null extern)
define-foreign append-child! "element" "appendChild"
  . (ref null extern) (ref null extern) 
  . -> (ref null extern)

;; your code
append-child! : document-body
  make-text-node "Hello, world!"
#+end_src

Transpile with =wisp2lisp= and =guild compile-wasm=. If you run Guix:

#+begin_src bash
guix shell guile guile-wisp -- \
  wisp2lisp hoot.w > hoot.scm && \
    guix shell guile-hoot guile-next -- \
      guild compile-wasm -o hoot.wasm hoot.scm
#+end_src

Get reflection tools from Guile Hoot (licensed Apache 2.0) with Guix:
#+latex: \ThisLLCornerWallPaper{0.26}{programming-scheme-hoot}%

#+begin_src bash
guix shell guile-hoot guile-next --  bash -c \
 'cp $GUIX_ENVIRONMENT/share/*hoot/*/re*/{*.js,*.wasm} ./'
#+end_src
ALT text details*Browser again: clientside wasm.* @@html:<a id="deploy-hoot-wasm" name="deploy-hoot-wasm"></a>@@ To run clientside, you can package your project with [[https://spritely.institute/hoot/][Hoot]]: build an interface and compile to wasm: #+begin_src wisp :results output :tangle hoot.w ;; file: hoot.w use-modules : hoot ffi ;; guile specific import ;; the interface define-foreign document-body "document" "body" . -> (ref null extern) define-foreign make-text-node "document" "createTextNode" . (ref string) -> (ref null extern) define-foreign append-child! "element" "appendChild" . (ref null extern) (ref null extern) . -> (ref null extern) ;; your code append-child! : document-body make-text-node "Hello, world!" #+end_src Transpile with =wisp2lisp= and =guild compile-wasm=. If you run Guix: #+begin_src bash guix shell guile guile-wisp -- \ wisp2lisp hoot.w > hoot.scm && \ guix shell guile-hoot guile-next -- \ guild compile-wasm -o hoot.wasm hoot.scm #+end_src Get reflection tools from Guile Hoot (licensed Apache 2.0) with Guix: #+latex: \ThisLLCornerWallPaper{0.26}{programming-scheme-hoot}% #+begin_src bash guix shell guile-hoot guile-next -- bash -c \ 'cp $GUIX_ENVIRONMENT/share/*hoot/*/re*/{*.js,*.wasm} ./' #+end_src
Load your interface (includes startup time optimizations):
#+begin_src js :tangle hoot.js
/* file: hoot.js */
var f = window.fetch; window.fetch = (inp, ini) => f(inp, 
  {credentials: 'include', mode: 'no-cors', ...ini});
window.addEventListener("load", () =>
  fetch("hoot.wasm")
    .then(r => r.arrayBuffer())
    .then(bytes => Scheme.load_main(bytes, {
      user_imports: { // mapped via define-foreign
        document: {
          body() { return document.body; },
          createTextNode: Document.prototype
            .createTextNode.bind(document)
        }, 
        element: {
          appendChild(parent, child) { 
            return parent.appendChild(child);}}}})));
#+end_src

Include =reflect.js= and =hoot.js= from a HTML page:

#+begin_src html :tangle hoot.html
<!DOCTYPE html> <!-- file: hoot.html -->
<html><head><title>Hello Hoot</title>
<script type="text/javascript" src="reflect.js"></script>
<script type="text/javascript" src="hoot.js"></script>
<link rel="preload" as="fetch" href="hoot.wasm"></link>
<link rel="preload" as="fetch" href="wtf8.wasm"></link>
<link rel="preload" as="fetch" href="reflect.wasm"></link>
</head><body><h1>Hoot Test</h1></body></html>
#+end_src

For local testing, hoot provides a minimal webserver:

#+begin_src bash
guix shell guile-hoot guile-next -- \
  guile -c '((@ (hoot web-server) serve))'
#+end_src
ALT text detailsLoad your interface (includes startup time optimizations): #+begin_src js :tangle hoot.js /* file: hoot.js */ var f = window.fetch; window.fetch = (inp, ini) => f(inp, {credentials: 'include', mode: 'no-cors', ...ini}); window.addEventListener("load", () => fetch("hoot.wasm") .then(r => r.arrayBuffer()) .then(bytes => Scheme.load_main(bytes, { user_imports: { // mapped via define-foreign document: { body() { return document.body; }, createTextNode: Document.prototype .createTextNode.bind(document) }, element: { appendChild(parent, child) { return parent.appendChild(child);}}}}))); #+end_src Include =reflect.js= and =hoot.js= from a HTML page: #+begin_src html :tangle hoot.html <!DOCTYPE html> <!-- file: hoot.html --> <html><head><title>Hello Hoot</title> <script type="text/javascript" src="reflect.js"></script> <script type="text/javascript" src="hoot.js"></script> <link rel="preload" as="fetch" href="hoot.wasm"></link> <link rel="preload" as="fetch" href="wtf8.wasm"></link> <link rel="preload" as="fetch" href="reflect.wasm"></link> </head><body><h1>Hoot Test</h1></body></html> #+end_src For local testing, hoot provides a minimal webserver: #+begin_src bash guix shell guile-hoot guile-next -- \ guile -c '((@ (hoot web-server) serve))' #+end_src
Arne Babenhauserheide's avatar
Arne Babenhauserheide

@ArneBab@rollenspiel.social

in a toot: how to deploy as static website via (complete example).

The code from the two attached images, as written, runs on
draketo.de/software/hoot.html

Try it out!

It’s two pages from Naming & Logic: Programming Essentials with Wisp.

printed: epubli.com/shop/naming-and-log
website: draketo.de/software/programmin

This adds parallel fetches (do you see where?). If you adopt it, make sure your server compresses application/wasm.

*Browser again: clientside wasm.* @@html:<a id="deploy-hoot-wasm" name="deploy-hoot-wasm"></a>@@
To run clientside, you can package your project with [[https://spritely.institute/hoot/][Hoot]]: build an interface and compile to wasm:

#+begin_src wisp :results output :tangle hoot.w
;; file: hoot.w
use-modules : hoot ffi ;; guile specific import

;; the interface
define-foreign document-body "document" "body"
  . -> (ref null extern)
define-foreign make-text-node "document" "createTextNode"
  . (ref string) -> (ref null extern)
define-foreign append-child! "element" "appendChild"
  . (ref null extern) (ref null extern) 
  . -> (ref null extern)

;; your code
append-child! : document-body
  make-text-node "Hello, world!"
#+end_src

Transpile with =wisp2lisp= and =guild compile-wasm=. If you run Guix:

#+begin_src bash
guix shell guile guile-wisp -- \
  wisp2lisp hoot.w > hoot.scm && \
    guix shell guile-hoot guile-next -- \
      guild compile-wasm -o hoot.wasm hoot.scm
#+end_src

Get reflection tools from Guile Hoot (licensed Apache 2.0) with Guix:
#+latex: \ThisLLCornerWallPaper{0.26}{programming-scheme-hoot}%

#+begin_src bash
guix shell guile-hoot guile-next --  bash -c \
 'cp $GUIX_ENVIRONMENT/share/*hoot/*/re*/{*.js,*.wasm} ./'
#+end_src
ALT text details*Browser again: clientside wasm.* @@html:<a id="deploy-hoot-wasm" name="deploy-hoot-wasm"></a>@@ To run clientside, you can package your project with [[https://spritely.institute/hoot/][Hoot]]: build an interface and compile to wasm: #+begin_src wisp :results output :tangle hoot.w ;; file: hoot.w use-modules : hoot ffi ;; guile specific import ;; the interface define-foreign document-body "document" "body" . -> (ref null extern) define-foreign make-text-node "document" "createTextNode" . (ref string) -> (ref null extern) define-foreign append-child! "element" "appendChild" . (ref null extern) (ref null extern) . -> (ref null extern) ;; your code append-child! : document-body make-text-node "Hello, world!" #+end_src Transpile with =wisp2lisp= and =guild compile-wasm=. If you run Guix: #+begin_src bash guix shell guile guile-wisp -- \ wisp2lisp hoot.w > hoot.scm && \ guix shell guile-hoot guile-next -- \ guild compile-wasm -o hoot.wasm hoot.scm #+end_src Get reflection tools from Guile Hoot (licensed Apache 2.0) with Guix: #+latex: \ThisLLCornerWallPaper{0.26}{programming-scheme-hoot}% #+begin_src bash guix shell guile-hoot guile-next -- bash -c \ 'cp $GUIX_ENVIRONMENT/share/*hoot/*/re*/{*.js,*.wasm} ./' #+end_src
Load your interface (includes startup time optimizations):
#+begin_src js :tangle hoot.js
/* file: hoot.js */
var f = window.fetch; window.fetch = (inp, ini) => f(inp, 
  {credentials: 'include', mode: 'no-cors', ...ini});
window.addEventListener("load", () =>
  fetch("hoot.wasm")
    .then(r => r.arrayBuffer())
    .then(bytes => Scheme.load_main(bytes, {
      user_imports: { // mapped via define-foreign
        document: {
          body() { return document.body; },
          createTextNode: Document.prototype
            .createTextNode.bind(document)
        }, 
        element: {
          appendChild(parent, child) { 
            return parent.appendChild(child);}}}})));
#+end_src

Include =reflect.js= and =hoot.js= from a HTML page:

#+begin_src html :tangle hoot.html
<!DOCTYPE html> <!-- file: hoot.html -->
<html><head><title>Hello Hoot</title>
<script type="text/javascript" src="reflect.js"></script>
<script type="text/javascript" src="hoot.js"></script>
<link rel="preload" as="fetch" href="hoot.wasm"></link>
<link rel="preload" as="fetch" href="wtf8.wasm"></link>
<link rel="preload" as="fetch" href="reflect.wasm"></link>
</head><body><h1>Hoot Test</h1></body></html>
#+end_src

For local testing, hoot provides a minimal webserver:

#+begin_src bash
guix shell guile-hoot guile-next -- \
  guile -c '((@ (hoot web-server) serve))'
#+end_src
ALT text detailsLoad your interface (includes startup time optimizations): #+begin_src js :tangle hoot.js /* file: hoot.js */ var f = window.fetch; window.fetch = (inp, ini) => f(inp, {credentials: 'include', mode: 'no-cors', ...ini}); window.addEventListener("load", () => fetch("hoot.wasm") .then(r => r.arrayBuffer()) .then(bytes => Scheme.load_main(bytes, { user_imports: { // mapped via define-foreign document: { body() { return document.body; }, createTextNode: Document.prototype .createTextNode.bind(document) }, element: { appendChild(parent, child) { return parent.appendChild(child);}}}}))); #+end_src Include =reflect.js= and =hoot.js= from a HTML page: #+begin_src html :tangle hoot.html <!DOCTYPE html> <!-- file: hoot.html --> <html><head><title>Hello Hoot</title> <script type="text/javascript" src="reflect.js"></script> <script type="text/javascript" src="hoot.js"></script> <link rel="preload" as="fetch" href="hoot.wasm"></link> <link rel="preload" as="fetch" href="wtf8.wasm"></link> <link rel="preload" as="fetch" href="reflect.wasm"></link> </head><body><h1>Hoot Test</h1></body></html> #+end_src For local testing, hoot provides a minimal webserver: #+begin_src bash guix shell guile-hoot guile-next -- \ guile -c '((@ (hoot web-server) serve))' #+end_src
Stephan Michels's avatar
Stephan Michels

@michels@mastodon.social

I finished my weekend project: I compiled one of my graphics demos from to . The implementation uses a Canvas element, and I wrote an abstraction layer for my graphics library. It runs faster than expected. However, the Wasm file was 70 MB. The same demo as a Mac executable is only 9 MB. The technology is promising.

Stephan Michels's avatar
Stephan Michels

@michels@mastodon.social

I finished my weekend project: I compiled one of my graphics demos from to . The implementation uses a Canvas element, and I wrote an abstraction layer for my graphics library. It runs faster than expected. However, the Wasm file was 70 MB. The same demo as a Mac executable is only 9 MB. The technology is promising.

Anisse's avatar
Anisse

@Aissen@treehouse.systems

Linux in the browser? That's old. Linux compiled with a new WASM architecture: wow, that's fast! joelseverin.github.io/linux-wa

Anisse's avatar
Anisse

@Aissen@treehouse.systems

Linux in the browser? That's old. Linux compiled with a new WASM architecture: wow, that's fast! joelseverin.github.io/linux-wa

Hacker News 50's avatar
Hacker News 50

@hn50@social.lansky.name

WebAssembly (WASM) arch support for the Linux kernel

Link: github.com/joelseverin/linux-w
Discussion: news.ycombinator.com/item?id=4

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

This week I've been rewriting (in Zig) the position-based dynamics & cellular-automata engines used for the cloth sim in my art project (check the hashtag for older WIP)... Still endless tweaking, but could already stare at this beauty for hours, literally!

(And of course, I'm also again "dogfooding" thi.ng/genart-api for defining/handling parameters and animation timing...)

Screen recording of dozens of colorful pieces of cloth (2D physics sim, driven by agents) floating in an otherwise blank space. Each piece of "cloth" has its own color, only consists of thousands of dots connected by invisible springs and has an animated texture (2D cellular automata)
ALT text detailsScreen recording of dozens of colorful pieces of cloth (2D physics sim, driven by agents) floating in an otherwise blank space. Each piece of "cloth" has its own color, only consists of thousands of dots connected by invisible springs and has an animated texture (2D cellular automata)
Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

This week I've been rewriting (in Zig) the position-based dynamics & cellular-automata engines used for the cloth sim in my art project (check the hashtag for older WIP)... Still endless tweaking, but could already stare at this beauty for hours, literally!

(And of course, I'm also again "dogfooding" thi.ng/genart-api for defining/handling parameters and animation timing...)

Screen recording of dozens of colorful pieces of cloth (2D physics sim, driven by agents) floating in an otherwise blank space. Each piece of "cloth" has its own color, only consists of thousands of dots connected by invisible springs and has an animated texture (2D cellular automata)
ALT text detailsScreen recording of dozens of colorful pieces of cloth (2D physics sim, driven by agents) floating in an otherwise blank space. Each piece of "cloth" has its own color, only consists of thousands of dots connected by invisible springs and has an animated texture (2D cellular automata)
Thomas Steiner :chrome:'s avatar
Thomas Steiner :chrome:

@tomayac@toot.cafe · Reply to Thomas Steiner :chrome:'s post

It's all still experimental and not super tightly sandbox secure yet, but support in Node.js is very much a thing: nodejs.org/api/wasi.html. 🤯

Thomas Steiner :chrome:'s avatar
Thomas Steiner :chrome:

@tomayac@toot.cafe · Reply to Thomas Steiner :chrome:'s post

It's all still experimental and not super tightly sandbox secure yet, but support in Node.js is very much a thing: nodejs.org/api/wasi.html. 🤯

Thomas Steiner :chrome:'s avatar
Thomas Steiner :chrome:

@tomayac@toot.cafe

I didn't realize you could mix `import` and `require()` in Node.js now, I always thought it was either ESM or not, but you can mix: nodesource.com/blog/nodejs-22-.

```js
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const pkg = require('./package.json');
```

I likewise had no idea (that is, System Interface) was a thing in Node.js. Need to investigate more…

Blabla Linux's avatar
Blabla Linux

@blablalinux@mastodon.blablalinux.be · Reply to Blabla Linux's post

💚 Open Source & Gratuit : Pour toujours ! Une solution éthique, créée avec Svelte et TypeScript.

En gros, c'est le convertisseur de fichiers de nouvelle génération, rapide et qui respecte votre vie privée. Un vrai petit génie du web !

➡️ Lien du projet (Star/Fork) : github.com/VERT-sh/VERT
➡️ Pour tester : vert.sh OU vert.blablalinux.be

Blabla Linux's avatar
Blabla Linux

@blablalinux@mastodon.blablalinux.be · Reply to Blabla Linux's post

💚 Open Source & Gratuit : Pour toujours ! Une solution éthique, créée avec Svelte et TypeScript.

En gros, c'est le convertisseur de fichiers de nouvelle génération, rapide et qui respecte votre vie privée. Un vrai petit génie du web !

➡️ Lien du projet (Star/Fork) : github.com/VERT-sh/VERT
➡️ Pour tester : vert.sh OU vert.blablalinux.be

openSUSE Linux's avatar
openSUSE Linux

@opensuse@fosstodon.org

From beats to feats, don’t miss this fun & fast-paced session. youtu.be/pq-04MlLAnM?si=6P6OJj

openSUSE Linux's avatar
openSUSE Linux

@opensuse@fosstodon.org

From beats to feats, don’t miss this fun & fast-paced session. youtu.be/pq-04MlLAnM?si=6P6OJj

Orhun Parmaksız 👾's avatar
Orhun Parmaksız 👾

@orhun@fosstodon.org

This is a website.
Entirely written in Rust.
Built with Ratzilla (@ratatui_rs + WebAssembly)
Same code runs in the terminal.
The future is bright.

gluesql.org/glues

Orhun Parmaksız 👾's avatar
Orhun Parmaksız 👾

@orhun@fosstodon.org

This is a website.
Entirely written in Rust.
Built with Ratzilla (@ratatui_rs + WebAssembly)
Same code runs in the terminal.
The future is bright.

gluesql.org/glues

heise Developer's avatar
heise Developer

@heisedeveloper@social.heise.de

Wasm 3 bringt 64-Bit-Adressraum und Garbage Collection

Der W3C-Standard WebAssembly (Wasm) erhält mit Version 3 ein umfangreiches Update mit weitreichenden Änderungen.

heise.de/news/Wasm-3-bringt-64

heise Developer's avatar
heise Developer

@heisedeveloper@social.heise.de

Wasm 3 bringt 64-Bit-Adressraum und Garbage Collection

Der W3C-Standard WebAssembly (Wasm) erhält mit Version 3 ein umfangreiches Update mit weitreichenden Änderungen.

heise.de/news/Wasm-3-bringt-64

Alvin Ashcraft 🐿️'s avatar
Alvin Ashcraft 🐿️

@alvinashcraft@hachyderm.io

Wasm 3.0 Completed

webassembly.org/news/2025-09-1

Alvin Ashcraft 🐿️'s avatar
Alvin Ashcraft 🐿️

@alvinashcraft@hachyderm.io

Wasm 3.0 Completed

webassembly.org/news/2025-09-1

Vladimir Savić's avatar
Vladimir Savić

@firusvg@mastodon.social

3.0 is here:

• 64-bit address space
• Multiple memories
• GC + typed refs
• Tail calls
• Exception handling
• Relaxed vector instructions
• Deterministic profile
• Custom annotation syntax
• JS string builtins

webassembly.org/news/2025-09-1

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

Since I've just been asked again if I could use more topic-specific accounts and not mix my photography with other topics — Unfortunately, nope! I'm on a single user managed instance and cannot create new accounts on this server nor do I want to create an account for every single topic I'm interested in or posting about. However, you can filter my posts by hashtags, which I'm trying to use consistently (also for my own purposes)...

Hashtags can be browsed individually, subscribed to (via Mastodon) or even syndicated via RSS, e.g.

Browse:
mastodon.thi.ng/@toxi/tagged/L

RSS:
mastodon.thi.ng/@toxi/tagged/L

My most commonly used tags are:

Photography:
(my B&W photos)

Open source projects:

Art:

Music:

AI relatated:

Education/research:

Hope that helps!

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng · Reply to Karsten Schmidt's post

Btw. It's amazing that this swizzle function gets compiled into single WASM `i8x16.shuffle` ops (per 4 vector components, i.e. swizzling into an 8-dimensional vector would require 2 shuffles):

github.com/thi-ng/zig-thing/bl

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

Yesterday I released new versions of thi.ng/wasm-api (and its add-on packages), a modular and extensible bridge API & toolchain for hybrid JS/TS/Zig/WebAssembly apps, now updated to be compatible with the latest Zig version 0.15.1...

The update addresses some of Zig's breaking syntax & build system changes only, nothing on the JS/TS side has changed. As a result thi.ng/wasm-api-dom has a slightly revised internal structure (also a breaking change, but nothing major & unavoidable). All bundled Zig examples[1] in the repo have been updated too, take a look for reference (if needed).

FYI More details about the Zig language changes here:
ziglang.org/download/0.15.1/re

Specifically, the removal of `usingnamespace` has had a major impact on the existing handling of generated types in these wasm-api support packages (or your own) and now forces an additional level of hierarchy in terms of namespacing. This is because `usingnamespace` enabled a form of namespace merging, which allowed the generated WASM⭤TS interop types (written to their own sourcefile) to be merged/hoisted into the main library module.

For example, previously after importing `const dom = @import("wasm-api-dom");` we could refer to a type via `dom.WindowInfo`. Now with namespace merging removed, we have to use `dom.types.WindowInfo`. As I said, it's not a major departure, but a breaking change nonetheless[2]...

The `build.zig` file bundled with thi.ng/wasm-api is now also only compatible with Zig 0.15.1 (for now). Build files for older Zig versions are still included too (in the same directory)[3].

Lastly, once more for the record: The wasm-api bridge itself is NOT tied to Zig (or a particular version), however it's the main use case/language for my own WebAssembly use cases...

[1] github.com/thi-ng/umbrella/tre (all examples starting with `zig-*`)

[2] The existing design of these modules helped to keep these breaking changes to a minimum in userland code and these updates are all following the same uniform pattern (i.e. exposing interop types via `modulename.types.TypeName`...)

[3] github.com/thi-ng/umbrella/tre

squillace's avatar
squillace

@squillace@hachyderm.io

If anyone's interested in a meetup kinda thing prior to EU Sunday evening the 24th of August, I'll be hosting one there in AMS.

Looking for a nice place as we speak....

Andrew Lock's avatar
Andrew Lock

@andrewlock@hachyderm.io

Blogged: Running .NET in the browser without Blazor

andrewlock.net/running-dotnet-

In this post I show how to run .NET in your browser without using Blazor, and instead rely on lower-level abstractions provided by [JSImport] and [JSExport]

Frontend Dogma's avatar
Frontend Dogma

@frontenddogma@mas.to

WebAssembly: Yes, but for What?, by @wingo (@acmqueue.bsky.social):

queue.acm.org/detail.cfm?id=37

Orhun Parmaksız 👾's avatar
Orhun Parmaksız 👾

@orhun@fosstodon.org

Damn... Rust devs going crazy with these libraries.

⚒️ **sledgehammer_bindgen** 🦀

💥 Breaking the performance barrier of WASM/JS communication.

⚡ Faster Rust batched bindings for JS code.

⭐ GitHub: github.com/ealmloff/sledgehamm

Orhun Parmaksız 👾's avatar
Orhun Parmaksız 👾

@orhun@fosstodon.org

Damn... Rust devs going crazy with these libraries.

⚒️ **sledgehammer_bindgen** 🦀

💥 Breaking the performance barrier of WASM/JS communication.

⚡ Faster Rust batched bindings for JS code.

⭐ GitHub: github.com/ealmloff/sledgehamm

Orhun Parmaksız 👾's avatar
Orhun Parmaksız 👾

@orhun@fosstodon.org

Damn... Rust devs going crazy with these libraries.

⚒️ **sledgehammer_bindgen** 🦀

💥 Breaking the performance barrier of WASM/JS communication.

⚡ Faster Rust batched bindings for JS code.

⭐ GitHub: github.com/ealmloff/sledgehamm

EuroRust's avatar
EuroRust

@eurorust@fosstodon.org · Reply to EuroRust's post

Covered:

🦀 Build an HTTP handler in Rust
🦀 Deploy it with modern Wasm runtimes
🦀 Debug, profile, and monitor your Wasm backend
🦀 Wrap it up with a working calculator API

All the details are here ➡️ eurorust.eu/workshops/long-liv

🧵2/3

openSUSE Linux's avatar
openSUSE Linux

@opensuse@fosstodon.org

How hard can it be? That question led to a adventure at , featuring music tech, retro vibes, and real-world lessons on porting apps like across devices! From handhelds to the browser, this one’s for the tinkerers. youtu.be/pq-04MlLAnM?si=m4y_Md

Thomas Steiner :chrome:'s avatar
Thomas Steiner :chrome:

@tomayac@toot.cafe

New podcast 🎙️ episode! Dart, Flutter, and WasmGC:

🍿 youtube.com/watch?v=vgOABOvtBT
🎧 wasmassembly.libsyn.com/dart-f

🚀 In this episode of WasmAssembly, I chat with Ömer Ağacan & Martin Kustermann from the Dart team at Google about , , , dart2wasm vs dart2js, Jaspr, and the future of —both in and beyond the browser. A must-listen for nerds!

Steve Leach's avatar
Steve Leach

@stevenaleach@sigmoid.social · Reply to acb's post

@acb

I think the name has caused confusion and held it back.

I know I reflexively ignored and skipped over any mention of until I realized very recently that it:

1) Is general purpose and not actually a "web" thing.

&

2) Isn't yet another name for .

acb's avatar
acb

@acb@mastodon.social

A look at the state of , as it turns 10. It’s getting traction in some areas (though notably game engines aren’t one of them), though a pain point is its low-level model and lack of any standard implementation of structured types or garbage collection making interfacing with dynamic languages, or indeed the web DOM, a pain. As with Java, though, the web may not be where it ends up.

queue.acm.org/detail.cfm?id=37

vruz's avatar
vruz

@vruz@mstdn.social · Reply to vruz's post

Native JS templating: helps JavaScript developers. Direct WASM→DOM: helps EVERY language. Rust, Go, C#, Zig, Swift, Kotlin... all get first-class web UI performance. That's real platform evolution. We shouldn't be adding more JS-specific APIs when we could be opening the web to all languages equally. The web platform should be language-agnostic at its core.

doboprobodyne's avatar
doboprobodyne

@doboprobodyne@mathstodon.xyz · Reply to Sebastian Lasse's post

@sl007 @christianp @clemensg

> clientside content-id comparison.

That's a neat idea!

Sebastian Lasse's avatar
Sebastian Lasse

@sl007@digitalcourage.social · Reply to doboprobodyne's post

@doboprobodyne @christianp

awesome!
In the long run it might also make the online transcoding tools with the "Start now" [to download malware]-button obsolete.

Funnily I talked about this [soon solved] problem with my funder @clemensg by phone today.

just et. al. too
please save us from uploading duplicate files or journalists from writing alt twice with clientside content-id comparison.

doboprobodyne's avatar
doboprobodyne

@doboprobodyne@mathstodon.xyz · Reply to Christian Lawson-Perfect's post

@christianp

Just a thought, from a knuckle-dragging biology scientist. TL;DR: I believe there is scope to make the hosting of a peertube instance even more lightweight in the future.

I read some time ago of people using to transcode video in a user's web-browser. blog.scottlogic.com/2020/11/23

Since then, I believe has done/is doing some clever things to improve the browser's access to the device's GPU.

I have not seen any capability that offloads video transcoding to the user in this way.

I imagine, though, that this would align well with peertube's agenda of lowering the bar to entry into web-video hosting, so I cannot help but think that this will come in time.

My own interest is seeing a (activitypub) instance whose web-pages could posts into the user's own language using the user's own processing power... One day, maybe!

Thank you again for all your hard work; it is an inspiration.

doboprobodyne's avatar
doboprobodyne

@doboprobodyne@mathstodon.xyz · Reply to Christian Lawson-Perfect's post

@christianp

Just a thought, from a knuckle-dragging biology scientist. TL;DR: I believe there is scope to make the hosting of a peertube instance even more lightweight in the future.

I read some time ago of people using to transcode video in a user's web-browser. blog.scottlogic.com/2020/11/23

Since then, I believe has done/is doing some clever things to improve the browser's access to the device's GPU.

I have not seen any capability that offloads video transcoding to the user in this way.

I imagine, though, that this would align well with peertube's agenda of lowering the bar to entry into web-video hosting, so I cannot help but think that this will come in time.

My own interest is seeing a (activitypub) instance whose web-pages could posts into the user's own language using the user's own processing power... One day, maybe!

Thank you again for all your hard work; it is an inspiration.

doboprobodyne's avatar
doboprobodyne

@doboprobodyne@mathstodon.xyz · Reply to Christian Lawson-Perfect's post

@christianp

Just a thought, from a knuckle-dragging biology scientist. TL;DR: I believe there is scope to make the hosting of a peertube instance even more lightweight in the future.

I read some time ago of people using to transcode video in a user's web-browser. blog.scottlogic.com/2020/11/23

Since then, I believe has done/is doing some clever things to improve the browser's access to the device's GPU.

I have not seen any capability that offloads video transcoding to the user in this way.

I imagine, though, that this would align well with peertube's agenda of lowering the bar to entry into web-video hosting, so I cannot help but think that this will come in time.

My own interest is seeing a (activitypub) instance whose web-pages could posts into the user's own language using the user's own processing power... One day, maybe!

Thank you again for all your hard work; it is an inspiration.

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

Various thi.ng updates, bug fixes, additions and new version of github.com/thi-ng/zig-thing/ — now fully compatible with current Zig v0.14.1

On a more diary/devlog note: I also updated several of my Zig based work-in-progress art pieces to the latest version (some of them not touched in 2+ years) and it's so good to see how the thi.ng/wasm-api toolchain has been holding up with various breaking Zig changes and also how this setup simplifies creating hybrid Zig/TypeScript projects (e.g. for using DOM/WebGL from Zig). Related, I also want to mention once more the Zig WebAssembly bindings[1] (updated a few weeks ago), which add another layer of flexibility & boilerplate reduction for generative/procedural/algorithmic art projects...

I will be attempting yet another few takes creating a video overview & mini-workshop/tutorial about thi.ng/genart-api, hopefully also touching on these aspects...

[1] github.com/thi-ng/genart-api/t

Still image/poster of DANZA, an abstract, generative physics-based realtime animation. The composition shows multiple overlapping patches of cloth sims, each represented by tens of thousands of small dots, each patch in different colors.
ALT text detailsStill image/poster of DANZA, an abstract, generative physics-based realtime animation. The composition shows multiple overlapping patches of cloth sims, each represented by tens of thousands of small dots, each patch in different colors.
Still image of S-TRACE, an abstract generative realtime animation based on omnidirectional sphere tracing and multiple agents exploring the constantly changing positive & negative spaces
ALT text detailsStill image of S-TRACE, an abstract generative realtime animation based on omnidirectional sphere tracing and multiple agents exploring the constantly changing positive & negative spaces
zalim (kotlin wasm ...)

@bashorov@mastodon.online

📣 We’re hiring for Kotlin/Wasm!

Excited about Kotlin and WebAssembly? So are we.
Join our team to work on innovative tech that’s changing how web apps are built.

Apply now ⤵️
kotl.in/wasm-apply

Repost appreciated! 🙌

Orhun Parmaksız 👾's avatar
Orhun Parmaksız 👾

@orhun@fosstodon.org

Happy to announce the 0.1.0 release of my Rust web framework! 🎉🦀

🐭 **Ratzilla** — Build terminal-themed web applications.

🌀 Now supports WebGL2 and dynamically calling JS functions!

🦀 Built with Rust, WebAssembly & @ratatui_rs

⭐ GitHub: github.com/orhun/ratzilla

Orhun Parmaksız 👾's avatar
Orhun Parmaksız 👾

@orhun@fosstodon.org

Happy to announce the 0.1.0 release of my Rust web framework! 🎉🦀

🐭 **Ratzilla** — Build terminal-themed web applications.

🌀 Now supports WebGL2 and dynamically calling JS functions!

🦀 Built with Rust, WebAssembly & @ratatui_rs

⭐ GitHub: github.com/orhun/ratzilla

Jeremy Tuloup's avatar
Jeremy Tuloup

@jtp@fosstodon.org

🎉 JupyterLite 0.6 is now available!

Coming with exciting new features:

✨ Interactive input() support (useful for teaching Python)
🔄 New REPL options
🎯 Better kernel status and logs
🧹 Easier browser data management
⚡️ Improved multi-tab support and storage isolation

Check out the blog post and walkthrough video:

➡️ blog.jupyter.org/jupyterlite-0
➡️ youtube.com/watch?v=jkQ9ORG5qA

Thanks @QuantStack, Bloomberg, CourseKata and all the contributors!

FullStack Bulletin's avatar
FullStack Bulletin

@fstackbulletin@mastodon.social

Nova is a () and engine written in

trynova.dev/

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

— New version (v0.27.0) of thi.ng/genart-api, a platform-independent extensible API for browser-based computational/algorithmic/generative art projects:

This version features an overhaul of the platform provided PRNG (pseudo-random number generator) handling and makes it easier to create multiple PRNGs for artworks which require/desire them...

Related section in the README:
github.com/thi-ng/genart-api/b

Also, just as a reminder, the project has:

- no external dependencies
- adapters for 3 art platforms (EditArt, fxhash, Layer)
- 6 example projects
- testing/dev sandbox with two parameter editors
- WebAssembly bindings & demo (currently for only)

Happy coding! :)

Hacker News's avatar
Hacker News

@h4ckernews@mastodon.social

Nova: A JavaScript and WebAssembly engine written in Rust

trynova.dev/

TinyGo's avatar
TinyGo

@TinyGo@mastodon.social

Want to learn about Pulse Width Modulation (PWM) on hardware, but don't have any actual hardware?
We've got you covered with our newest addition to the TinyGo Tour with simulated hardware using WebAssembly in your browser!
tinygo.org/tour/pwm/

Anirudha's avatar
Anirudha

@ani@fosstodon.org

🌀 Introducing **Chakra** - a blazing fast in-browser WebAssembly runtime for builders.

```sh
chakra myfile.wasm
```

– Runs WASM in-browser with logs
– Supports Rust, TinyGo, C, Asc and Python
– One-line introspection & verify commands

Chakra is an open source project and we're building it *with the community*.

🌟 github.com/anistark/chakra
📖 Read more: blog.anirudha.dev/chakra

Give us a shout-out or star the repo on github if you like the idea. 🙌

TinyGo's avatar
TinyGo

@TinyGo@mastodon.social

Want to learn about Pulse Width Modulation (PWM) on hardware, but don't have any actual hardware?
We've got you covered with our newest addition to the TinyGo Tour with simulated hardware using WebAssembly in your browser!
tinygo.org/tour/pwm/

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

This is may really be just news to me, but today I learned that @dubroy's and @marianoguerra's book "WebAssembly from the Ground Up" has actually been available for a while and the topics look super interesting...

wasmgroundup.com/

Top level topics (quoting from their website):

- What exactly WebAssembly is, and what makes it unique.
- How to instantiate a WebAssembly module in JavaScript and run its functions.
- The binary module format, and how to hand craft a module from scratch.
- How to create a simple compiler with Ohm.
- The instruction set: numeric instructions, memory access, control flow, etc.
- How to interact with the outside world.
- The WebAssembly security model: what makes it safe?

(Ps. If you're looking to combine this new knowledge and are interested in building hybrid JS/TS/WASM apps, also check out my extensible thi.ng/wasm-api toolchain...)

:rss: Hacker News

@ycombinator@rss-mstdn.studiofreesia.com

An Update on Fresh
deno.com/blog/an-update-on-fre

AOE, Takashi's avatar
AOE, Takashi

@aoetk.bsky.social@bsky.brid.gy

CheerpJすごいよねえ。ちゃんとSwingアプリケーションが動いている。Plug-InではなくWebテクノロジーによってAppletやWeb Startを再び動かせるようになる時が来るとはねえ。 JavaFXやSWTについてはネイティブ実装部分をWebAssemblyにコンパイルする必要があるのでこれからの対応になると。 #java #webassembly www.publickey1.jp/blog/25/java...

JavaVMをWebAssemblyで実装した「Cheerp...

AOE, Takashi's avatar
AOE, Takashi

@aoetk.bsky.social@bsky.brid.gy

CheerpJすごいよねえ。ちゃんとSwingアプリケーションが動いている。Plug-InではなくWebテクノロジーによってAppletやWeb Startを再び動かせるようになる時が来るとはねえ。 JavaFXやSWTについてはネイティブ実装部分をWebAssemblyにコンパイルする必要があるのでこれからの対応になると。 #java #webassembly www.publickey1.jp/blog/25/java...

JavaVMをWebAssemblyで実装した「Cheerp...

Thomas Steiner :chrome:'s avatar
Thomas Steiner :chrome:

@tomayac@toot.cafe

JAWSM—a JavaScript to compiler:
itsallaboutthebit.com/jawsm/. A similar tool is Porffor: github.com/CanadaHonk/porffor. Neither of them are production-ready, but the idea of compiling JavaScript to is very compelling.

Thomas Steiner :chrome:'s avatar
Thomas Steiner :chrome:

@tomayac@toot.cafe

JAWSM—a JavaScript to compiler:
itsallaboutthebit.com/jawsm/. A similar tool is Porffor: github.com/CanadaHonk/porffor. Neither of them are production-ready, but the idea of compiling JavaScript to is very compelling.

Jonas Kruckenberg :tauri:'s avatar
Jonas Kruckenberg :tauri:

@unsafe@m.webtoo.ls

hell yeeeaahhh k23 finally has working host functions!!!!!!!

this means we can finally execute useful including running the test suites!

a screenshot of the k23 debuglog showing a “hello world from hostfunc” message
ALT text detailsa screenshot of the k23 debuglog showing a “hello world from hostfunc” message
Jonas Kruckenberg :tauri:'s avatar
Jonas Kruckenberg :tauri:

@unsafe@m.webtoo.ls

hell yeeeaahhh k23 finally has working host functions!!!!!!!

this means we can finally execute useful including running the test suites!

a screenshot of the k23 debuglog showing a “hello world from hostfunc” message
ALT text detailsa screenshot of the k23 debuglog showing a “hello world from hostfunc” message
Rocky Lhotka 🤘🖖's avatar
Rocky Lhotka 🤘🖖

@rockylhotka@fosstodon.org · Reply to Rocky Lhotka 🤘🖖's post

The app is a character sheet for a based on a custom game system my friends and I have been evolving since around 1985. These days I suppose you could compare it somewhat to the system a little?

I asked the AI to create it using , and it chose the option. I'm not sure that's correct, but I suspect the AI can easily convert it to Blazor server if necessary.

🧵

Thomas Steiner :chrome:'s avatar
Thomas Steiner :chrome:

@tomayac@toot.cafe

📢 New post by Andreas Rossberg on the site in which he announces the community's adoption of 📄, a domain-specific language and toolchain that facilitates both the Wasm specification and the generation of artifacts necessary to standardize new features: webassembly.org/news/2025-03-2.

Thomas Steiner :chrome:'s avatar
Thomas Steiner :chrome:

@tomayac@toot.cafe

📢 New post by Andreas Rossberg on the site in which he announces the community's adoption of 📄, a domain-specific language and toolchain that facilitates both the Wasm specification and the generation of artifacts necessary to standardize new features: webassembly.org/news/2025-03-2.

squillace's avatar
squillace

@squillace@hachyderm.io

Joel Dice of has written a great early look at components preview 3 here: fermyon.com/blog/looking-ahead.

I very much appreciate the contributor list at the bottom of the post, as it indicates how many people are working toward this, step by step.

squillace's avatar
squillace

@squillace@hachyderm.io

Joel Dice of has written a great early look at components preview 3 here: fermyon.com/blog/looking-ahead.

I very much appreciate the contributor list at the bottom of the post, as it indicates how many people are working toward this, step by step.

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

Now compatible with the latest Zig v0.14.0: Just updated thi.ng/wasm-api, an extensible and modular API bridge & toolchain for hybrid Zig/TypeScript apps, all of the related Zig example projects, as well as the (still somewhere between post-hatching & pre-fledging) other thi.ng/zig libraries...

NobleMajo's avatar
NobleMajo

@NobleMajo@mastodon.social

🦫 Go 1.24 boosts WebAssembly with go:wasmexport! Export Go functions to Wasm & build WASI reactors with ease. Can’t wait to see what the community builds! ⚡🔧

NobleMajo's avatar
NobleMajo

@NobleMajo@mastodon.social

🦫 Go 1.24 boosts WebAssembly with go:wasmexport! Export Go functions to Wasm & build WASI reactors with ease. Can’t wait to see what the community builds! ⚡🔧

Hacker News 50's avatar
Hacker News 50

@hn50@social.lansky.name

Now you can run Ruby on Rails in the browser using WebAssembly

Link: web.dev/blog/ruby-on-rails-on-
Discussion: news.ycombinator.com/item?id=4

Dan Chiarlone's avatar
Dan Chiarlone

@danologue@hachyderm.io

At , we demoed super fast, hardware-protected micro-VMs with Hyperlight—executing untrusted code in just 900µs!

Read how we achieved this & try the demo yourself: 🔗 opensource.microsoft.com/blog/

Hacker News 50's avatar
Hacker News 50

@hn50@social.lansky.name

Now you can run Ruby on Rails in the browser using WebAssembly

Link: web.dev/blog/ruby-on-rails-on-
Discussion: news.ycombinator.com/item?id=4

MoonBit's avatar
MoonBit

@moonbitlang@mastodon.social

🚀 MoonBit-powered library, Cmark, runs 12x faster than popular JS libs! In our new post, discover how to profile it directly in Chrome & optimize for even better performance.
moonbitlang.com/blog/profile-w

⬇️Download: moonbitlang.pub/marketplace/m
👥Community: discord.gg/5d46MfXkfZ

Dan Chiarlone's avatar
Dan Chiarlone

@danologue@hachyderm.io

At , we demoed super fast, hardware-protected micro-VMs with Hyperlight—executing untrusted code in just 900µs!

Read how we achieved this & try the demo yourself: 🔗 opensource.microsoft.com/blog/

Orhun Parmaksız 👾's avatar
Orhun Parmaksız 👾

@orhun@fosstodon.org

I announced my latest project "**Ratzilla**" at FOSDEM yesterday! 🥳

➡️ Demo: orhun.dev/ratzilla/demo/

🦀 Build terminal-themed web applications with Rust and WebAssembly

👨‍🍳 Powered by @ratatui_rs

⭐ GitHub: github.com/orhun/ratzilla

Orhun Parmaksız 👾's avatar
Orhun Parmaksız 👾

@orhun@fosstodon.org

I announced my latest project "**Ratzilla**" at FOSDEM yesterday! 🥳

➡️ Demo: orhun.dev/ratzilla/demo/

🦀 Build terminal-themed web applications with Rust and WebAssembly

👨‍🍳 Powered by @ratatui_rs

⭐ GitHub: github.com/orhun/ratzilla

Edoardo Vacchi's avatar
Edoardo Vacchi

@evacchi@mastodon.social

I am looking forward to meeting you at @fosdem! I have two presentations, one for the room and one for the room

wasmVision's avatar
wasmVision

@wasmvision@mastodon.social

We just released wasmVision 0.2 along with wasmCV 0.7 just in time for @fosdem

Come see our talk in the dev room on Sunday at noon!

fosdem.org/2025/schedule/track

Thomas Steiner :chrome:'s avatar
Thomas Steiner :chrome:

@tomayac@toot.cafe

Alpine Linux with GUI, virtualized in : webvm.io/alpine.html. 🤯

Andrew Tropin's avatar
Andrew Tropin

@abcdw@fosstodon.org

The best WebAssembly lispy language is released. Guile Hoot 0.6.0 is in the wild now.

The most exciting update for me is an implementation of macroexpander, which means eval is around the corner and we can start working on Hoot support for Arei/Ares Guile Scheme IDE soon.

spritely.institute/news/guile-

Hoot 0.6.0 release image. It's a pixel art showing mountains, river, castle in the background, owl and some anthropomorphic creature in the foreground.
ALT text detailsHoot 0.6.0 release image. It's a pixel art showing mountains, river, castle in the background, owl and some anthropomorphic creature in the foreground.
Andrew Tropin's avatar
Andrew Tropin

@abcdw@fosstodon.org

The best WebAssembly lispy language is released. Guile Hoot 0.6.0 is in the wild now.

The most exciting update for me is an implementation of macroexpander, which means eval is around the corner and we can start working on Hoot support for Arei/Ares Guile Scheme IDE soon.

spritely.institute/news/guile-

Hoot 0.6.0 release image. It's a pixel art showing mountains, river, castle in the background, owl and some anthropomorphic creature in the foreground.
ALT text detailsHoot 0.6.0 release image. It's a pixel art showing mountains, river, castle in the background, owl and some anthropomorphic creature in the foreground.
Thomas Steiner :chrome:'s avatar
Thomas Steiner :chrome:

@tomayac@toot.cafe

Alpine Linux with GUI, virtualized in : webvm.io/alpine.html. 🤯

Jeffrey Perkel's avatar
Jeffrey Perkel

@jperkel@sciencemastodon.com

This is so cool -- run CUDA code in the browser using . hipscript.lights0123.com/ cf my feature @Nature on WebAssembly in science: nature.com/articles/d41586-024

Cartoon of a pixelated, purple hand passing through a browser window and manipulating pieces of code within. The image is primarily green with code symbols shown as outlines in a 3D cubic volume.
ALT text detailsCartoon of a pixelated, purple hand passing through a browser window and manipulating pieces of code within. The image is primarily green with code symbols shown as outlines in a 3D cubic volume.
Thomas Steiner :chrome:'s avatar
Thomas Steiner :chrome:

@tomayac@toot.cafe

Is Memory64 actually worth using?
spidermonkey.dev/blog/2025/01/ An excellent post by Mozilla's Ben Visness that explains the Memory64 standard. 👏

Thomas Steiner :chrome:'s avatar
Thomas Steiner :chrome:

@tomayac@toot.cafe

Is Memory64 actually worth using?
spidermonkey.dev/blog/2025/01/ An excellent post by Mozilla's Ben Visness that explains the Memory64 standard. 👏

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

Another day, another release (v0.25.0):

This update mainly features the new `@genart-api/wasm` package, providing Zig & TypeScript bindings for core GenArtAPI functionality (i.e. so far mostly parameter handling).

This WASM bridge/integration is designed as an API module for the thi.ng/wasm-api toolchain. Installation & build instructions are in the readme.

New package homepage:
github.com/thi-ng/genart-api/t

Example project (w/ param editor):
demo.thi.ng/genart-api/param-e

Example Zig source code:
github.com/thi-ng/genart-api/b

Jeffrey Perkel's avatar
Jeffrey Perkel

@jperkel@sciencemastodon.com

This is so cool -- run CUDA code in the browser using . hipscript.lights0123.com/ cf my feature @Nature on WebAssembly in science: nature.com/articles/d41586-024

Cartoon of a pixelated, purple hand passing through a browser window and manipulating pieces of code within. The image is primarily green with code symbols shown as outlines in a 3D cubic volume.
ALT text detailsCartoon of a pixelated, purple hand passing through a browser window and manipulating pieces of code within. The image is primarily green with code symbols shown as outlines in a 3D cubic volume.
Merlijn Sebrechts's avatar
Merlijn Sebrechts

@mesebrec@ubuntu.social

Want to do a about and ? Please contact me! We have well-paid PhD positions available.

You need to have a master's in computer science or equivalent, good technical skills and good writing skills.

These are on-site positions in the beautiful city of Ghent, Belgium.

See this thread for more info. Feel free to boost!

World Wide Web Consortium's avatar
World Wide Web Consortium

@w3c@w3c.social

W3C tech in the news: "Amex’s FaaS Uses WebAssembly Instead of Containers" at @TheNewStack
"A key reason behind Amex's adoption of WebAssembly is that WebAssembly demonstrated superior performance metrics compared to containers"
thenewstack.io/amexs-faas-uses

World Wide Web Consortium's avatar
World Wide Web Consortium

@w3c@w3c.social

W3C tech in the news: "Amex’s FaaS Uses WebAssembly Instead of Containers" at @TheNewStack
"A key reason behind Amex's adoption of WebAssembly is that WebAssembly demonstrated superior performance metrics compared to containers"
thenewstack.io/amexs-faas-uses

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

thi.ng/umbrella 2024 summary

Next month will be already 7 years old (in its current monorepo form) and thi.ng itself turn 14 — a true teenager! 😱

2024 has been a year of a lot of maintenance and the first year in a while, in which I got to put so many of these tools & libraries to work on the development of several other new (and ongoing) projects (incl. some still unannounced ones). Considering the vastly different usage contexts, each time this is also a demonstration (to myself) of just how powerful, adaptable and _composable_ many of these libraries are, and I wish I'd be able to better communicate these aspects to other people...

My deepest thanks and gratitude to my amazing supporters/sponsors, who've been enabling me to continue this work, to expand on it and actively maintain it! Some of you already for years! Love you, people — Your support means the world to these projects (and to me)! And even though I'm still a far way from being able to work fulltime on all these projects, and also had to take on some consulting work this year, I too have been trying my best to work on thi.ng projects every day this year (and almost succeeded)...

Super special thanks go out to: @avi @made @Yura @robertoranon @jeffpalmer @alesroubicek @slowdownitsfine @latrokles @rc101 and others... (Sorry if I missed any other people/supporters/users here — please ping me (again) if I don't follow you already!) 🙏😍

Some juicy/boring statistics ( only!):

In 2024 there were 1,639 commits (incl. today's release), of which:

- 467 features (29%)
- 389 documentation related (24%)
- 340 refactor & performance (21%)
- 198 build, CI, testing, restructuring (12%)
- 112 releases (7%)
- 87 bug fixes (5%)

Scope:

- 200 packages/libraries/tools
- 180 standalone example projects/tools
- 520 code snippets/examples in docs (extractable via tooling)

Source code:

- 4,095 source files
- 223k SLOC total, of which:
- 159k lines of code
- 64k comment lines (mostly for API docs)

Readme's:

- 33% of packages with 1,000+ words
- 20% of packages with 1,500+ words
- Min: 215, max: 9,519, avg: 1,075 words

3,445 Github ⭐️ (+12% in 2024)

200,675,881 NPM total downloads to date (🤯)

There're many valuable ways to support these projects: Share your usage/experience reports, tips & tricks, ask/answer questions, submit issues/PRs, create small examples, documentation/tutorials, word-of-mouth etc.

If you see value in these projects and want to support a large & mature body of open source work financially, I'm accepting contributions via: Github, Liberapay & Patreon — thank you very much for your consideration!

github.com/postspectacular
liberapay.com/thi.ng/
patreon.com/thing_umbrella

Ps. I'm on a small single-user instance only here - any boosts are highly appreciated to increase visibility! Thank you! 🙏

Screenshot of my Github activity/contribution heatmap of the past year, listing 2493 contributions (only a handful of days without contribs since end of Jan 2024)

Visualization from here:
https://github.com/postspectacular
ALT text detailsScreenshot of my Github activity/contribution heatmap of the past year, listing 2493 contributions (only a handful of days without contribs since end of Jan 2024) Visualization from here: https://github.com/postspectacular
Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

thi.ng/umbrella 2024 summary

Next month will be already 7 years old (in its current monorepo form) and thi.ng itself turn 14 — a true teenager! 😱

2024 has been a year of a lot of maintenance and the first year in a while, in which I got to put so many of these tools & libraries to work on the development of several other new (and ongoing) projects (incl. some still unannounced ones). Considering the vastly different usage contexts, each time this is also a demonstration (to myself) of just how powerful, adaptable and _composable_ many of these libraries are, and I wish I'd be able to better communicate these aspects to other people...

My deepest thanks and gratitude to my amazing supporters/sponsors, who've been enabling me to continue this work, to expand on it and actively maintain it! Some of you already for years! Love you, people — Your support means the world to these projects (and to me)! And even though I'm still a far way from being able to work fulltime on all these projects, and also had to take on some consulting work this year, I too have been trying my best to work on thi.ng projects every day this year (and almost succeeded)...

Super special thanks go out to: @avi @made @Yura @robertoranon @jeffpalmer @alesroubicek @slowdownitsfine @latrokles @rc101 and others... (Sorry if I missed any other people/supporters/users here — please ping me (again) if I don't follow you already!) 🙏😍

Some juicy/boring statistics ( only!):

In 2024 there were 1,639 commits (incl. today's release), of which:

- 467 features (29%)
- 389 documentation related (24%)
- 340 refactor & performance (21%)
- 198 build, CI, testing, restructuring (12%)
- 112 releases (7%)
- 87 bug fixes (5%)

Scope:

- 200 packages/libraries/tools
- 180 standalone example projects/tools
- 520 code snippets/examples in docs (extractable via tooling)

Source code:

- 4,095 source files
- 223k SLOC total, of which:
- 159k lines of code
- 64k comment lines (mostly for API docs)

Readme's:

- 33% of packages with 1,000+ words
- 20% of packages with 1,500+ words
- Min: 215, max: 9,519, avg: 1,075 words

3,445 Github ⭐️ (+12% in 2024)

200,675,881 NPM total downloads to date (🤯)

There're many valuable ways to support these projects: Share your usage/experience reports, tips & tricks, ask/answer questions, submit issues/PRs, create small examples, documentation/tutorials, word-of-mouth etc.

If you see value in these projects and want to support a large & mature body of open source work financially, I'm accepting contributions via: Github, Liberapay & Patreon — thank you very much for your consideration!

github.com/postspectacular
liberapay.com/thi.ng/
patreon.com/thing_umbrella

Ps. I'm on a small single-user instance only here - any boosts are highly appreciated to increase visibility! Thank you! 🙏

Screenshot of my Github activity/contribution heatmap of the past year, listing 2493 contributions (only a handful of days without contribs since end of Jan 2024)

Visualization from here:
https://github.com/postspectacular
ALT text detailsScreenshot of my Github activity/contribution heatmap of the past year, listing 2493 contributions (only a handful of days without contribs since end of Jan 2024) Visualization from here: https://github.com/postspectacular
Sébastien Deleuze's avatar
Sébastien Deleuze

@sdeleuze@mastodon.online

This is a big news, MoonBit compiler is now open source! moonbitlang.com/blog/compiler-

MoonBit is a language designed for , with a Rust-like syntax but much more approchable, targeting WasmGC and providing support for the Wasm Component Model. Try it during your Christmas break! 🎄

☮ ♥ ♬ 🧑‍💻's avatar
☮ ♥ ♬ 🧑‍💻

@peterrenshaw@ioc.exchange

"If + existed in 2008, we wouldn't have needed to create . That's how important it is. on the server is the future of computing." — Solomon Hykes

/ / / <manning.com/books/server-side->

Thomas Steiner :chrome:'s avatar
Thomas Steiner :chrome:

@tomayac@toot.cafe

wasm-vips is libvips for the browser and Node.js, compiled to with : github.com/kleisauke/wasm-vips. There's a cool playground to test it: wasm-vips.kleisauke.nl/playgro.

World Wide Web Consortium's avatar
World Wide Web Consortium

@w3c@w3c.social

W3C tech on the web "WASM-4: Retro Game Dev Right In Your Browser"
"Born from the WebAssembly ecosystem, this console accepts “cartridges” in .wasm format. Any language that compiles to WebAssembly—be it Rust, Go, or AssemblyScript—can build games for it. The console’s emphasis on portability, with plans for microcontroller support, positions it as a playground for minimalist game developers. Multiplayer support? Check. Retro vibes? Double-check."
hackaday.com/2024/12/08/wasm-4

text: "WASM-4  1 Player 2 Players"
ALT text detailstext: "WASM-4 1 Player 2 Players"
Felicitas Pojtinger 🌅's avatar
Felicitas Pojtinger 🌅

@pojntfx@mastodon.social

Happy to release v1.2.0, the latest version of my modern, scriptable OSS netboot server after a two year hiatus! It has a modernized backend and almost completely rewritten PWA frontend (in ), plus standard WebDAV and gRPC management APIs! github.com/pojntfx/bofied

The starting screen for bofied
ALT text detailsThe starting screen for bofied
The file sharing screen for bofied
ALT text detailsThe file sharing screen for bofied
The mounting screen for bofied
ALT text detailsThe mounting screen for bofied
Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

It just dawned on me that I haven't been mentioning five(!) recent thi.ng/genart-api updates, all from the past month... 😱

The latest version (v0.14.0, just released) is largely about an overhaul of messaging related functionality and also addresses use cases related to managing multiple artworks embedded (via `<iframe>`s) in a single document/page (think: online gallery scenarios...)

If you're already using GenArtAPI message/event listeners in your own artwork, you might have to rename some of them. This commit has the important details:

github.com/thi-ng/genart-api/c

Also, the online parameter editors have been updated and are now only working with the latest version of the API, so be sure to update your artwork projects to stay compatible:

Generic editor harness (for your own compatible artworks):
demo.thi.ng/genart-api/param-e

Demo (with test artwork):
demo.thi.ng/genart-api/param-e

Other recent changes/additions (in no particular order):

- added new message types to poll the artwork/API for current state/info
- update message names & naming convention
- added ability to configure the API behavior/features (also via messaging)
- option to emit frame messages w/ current timing/frame info
- message broadcasting to multiple GenArtAPI instances/artworks
- inject common defaults for optional settings in param specs
- fixed date/datetime param handling (in editor)
- updated/fixed time providers
- updated debug time provider (w/ FPS visualization overlay)
- use gzip compression for image param values (in default platform adapter)
- added version info
- various documentation updates
- (WIP) WASM bindings for Zig-based artworks
- (WIP) unpublished progress on real platform adapters

Some of these features are all about enabling new use cases and improving usability of external tooling around artworks adapting GenArtAPI, for example:

- Ability to broadcast start/stop messages to either individual or all artworks embedded in a page
- Ability for the param editor to configure the artwork currently being worked on to emit timing & frame information (which then can be integrated in the editor UI without the editor knowing anything else about the artwork)
- Enable editors to identify an artwork/project and store param presets grouped by project ID
- Allow editors (or other tools) to check the API version used by the artwork by first sending a `genart:get-info` message, then listening for `genart:info` response (then maybe display a warning if version is incompatible)
- etc.

If you want to find out more, the project readme has _a lot_ more information. Also feel free to get in touch with any questions!

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng · Reply to Karsten Schmidt's post

Did some further updates to the code generator for bindings (thi.ng/wasm-api-bindgen) and released new versions of all thi.ng/wasm-api packages. The new codegen creates even smaller code (approx. -20%), achieved via better re-use of newly introduced helper functions to reduce boilerplate...

These changes will have compounding effects for larger numbers (or complexities) of generated types, especially those involving structs with string fields and/or arrays/slices...

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

Various and updates from this week:

- Added null pointer checks & guards in thi.ng/wasm-api. This also includes support for structs with fields using Zig-style optional pointers.
- Updated the thi.ng/wasm-api-bindgen code generator for to produce smaller code for structs using many string fields
- Did major ground work on bindings of core thi.ng/genart-api functionality (see small demo below)
- Fixed/updated/simplified time provider logic
- Updated the debug time provider with its FPS analytics/visualization overlay, now computing moving min/max and moving average (default period = 200 frames) and the viz is dynamically/smoothly rescaling to current peak
- Released new GenArtAPI v0.9.0

As for the Zig/WASM example: This is only interesting from a technical POV, no visuals here! All canvas drawing and parameter declarations/evaluations are done via Zig, using the aforementioned thi.ng/wasm-api infrastructure to provide a new API module which can be seamlessly used with the other hybrid WASM API modules, here for DOM creation (thi.ng/wasm-api-dom) and to handle Canvas2D drawing (thi.ng/wasm-api-canvas).

At the moment, this GenArtAPI WASM module is still a fixed part of this example, but will eventually be extracted & distributed as separate package.

Demo (with param editor):
demo.thi.ng/genart-api/param-e

Choose one of the two GUI implementations, then make any parameter changes and you should see the new values applied immediately (btw. the demo is likely not very usable on mobile)...

Source code (TypeScript in `/src`, Zig in `/zig` directories):
github.com/thi-ng/genart-api/t

deadprogram's avatar
deadprogram

@deadprogram@social.tinygo.org

The world premiere of my new open source project wasmVision was at yesterday.

Get going with computer vision using WebAssembly

Release 0.1 available now!

github.com/wasmvision/wasmvisi

Kathy Reid's avatar
Kathy Reid

@KathyReid@aus.social

The @thoughtworks is always on my must-read list - because it has a pulse on the future of where various technologies are headed, and provides practical advice around whether to Hold, Assess, Trial or Adopt a particular technology.

This edition's highlights:

➡️ coding tools are causing antipatterns of developer behaviour, such as an over-reliance on coding suggestions, and a lack of abstraction - what we used to call code "elegance". "Quelle surprise", we collectively gasp.

➡️ - retrieval augmented generation - to strengthen the truth of generated responses from an - is a strong adopt - which tracks with what I saw at @ALTAnlp last year, and other @aclmeeting papers. RAG all the things.

➡️ Rust is in ascendance due to its incredible performance, with some implementations previously using Python now offering Rust too. This matches with the signals I've been seeing across the ecosystem - with Rust also making headway in the Linux kernel space.

➡️ continues ascendance due to its ability to deliver powerful applications through a browser sandbox

➡️ Observability 2.0 is rated as Assess, and I think this is wrong - my signals - Grafana, Honeycomb.io - would place this in Adopt. Also ClickHouse's maturity for storing @opentelemetry data ...

➡️ Bruno as an alternative to Postman for API testing and integration is rated as Adopt - and I am in strong agreement with this.

What are your thoughts?

thoughtworks.com/radar

Brian Sletten's avatar
Brian Sletten

@bsletten@mastodon.social

Firefox speeds up WebAssembly code dramatically:

howtogeek.com/firefox-75x-fast

soyuka's avatar
soyuka

@soyuka@phpc.social

Run examples and play with them directly on the @php
website using !

github.com/php/web-php/pull/10

Made for @thephpf by @cooptilleuls

Thomas Steiner :chrome:'s avatar
Thomas Steiner :chrome:

@tomayac@toot.cafe

A fantastic writeup of the journey through the standards process of the branch hinting proposal by Yuri Iozzelli: labs.leaningtech.com/blog/bran. It's very accessible even to people like me without a PhD in compiler engineering. I wish more writing was like Yuri's. 👏

TinyGo's avatar
TinyGo

@TinyGo@mastodon.social

"Golang for WebAssembly Can Now Work Like IT Should"

Recent writeup in @TheNewStack that basically says "Use TinyGo for WebAssembly" ;)

thenewstack.io/golang-for-weba

squillace's avatar
squillace

@squillace@hachyderm.io

Back in March at , @anfibiacreativa and I showed a WIDE array of debugging in : youtube.com/watch?v=sofGOtwGWu.

But, you'll note: the debugger couldn't navigate files. Now it can!

squillace's avatar
squillace

@squillace@hachyderm.io

The wasi sg just released v0.2.1: bytecodealliance.org/articles/. Steps coming more incrementally and faster - and adding signals about compatibility, forward and backward. :-)

squillace's avatar
squillace

@squillace@hachyderm.io

an outstanding -virt hello world style post about component tool wasi-virt to demonstrate component interface virtualization! Kudos to the folks at @cosmonic for this: wasmcloud.com/blog/how-to-virt

Dotan Horovits #CNCFAmbassador's avatar
Dotan Horovits #CNCFAmbassador

@horovits@fosstodon.org

Interested in for ?
Check out the new WebAssembly System Interface (WASI) for observability, a.k.a. WASI Observe, aiming to exposes observability tracing, logging, and metrics interfaces to components.
I’m curious to see how this new API specification evolves.
github.com/WebAssembly/wasi-ob

hannah aubry's avatar
hannah aubry

@haubles@fosstodon.org

Hi friends! My colleagues at @devs are hiring a new manager for our team. They're looking for someone to "lead a team of very senior and very talented developers who are truly experts in this field and work closely across Fastly’s engineering teams to facilitate effective communication and roadmapping."

Read more and apply here: fastly.com/about/jobs/apply/?g

Trey Hunner 🐍's avatar
Trey Hunner 🐍

@treyhunner@mastodon.social

Time for another I think 🤔

My name is Trey. 👋 I help developers sharpen their Python skills. I mostly teach core , , and . 🐍

I run a Python team training company and made PythonMorsels.com to help individuals and small teams level-up their skills.

I love , I'm into /#vegan cooking, I'm interested in Python on , & I'm a . I've also acquired a habit of posting daily-ish on Mastodon (thanks @simon).

Karsten Schmidt's avatar
Karsten Schmidt

@toxi@mastodon.thi.ng

A week ago was the 1st anniversary of this solo instance & more generally of my fulltime move to Mastodon. A good time for a more detailed intro, partially intended as CV thread (pinned to my profile) which I will add to over time (also to compensate the ongoing lack of a proper website)... Always open to consulting offers, commissions and/or suitable remote positions...

Hi, I'm Karsten 👋 — indy software engineer, researcher, author of hundreds of projects (since ~1999), computational/generative artist/designer, landscape photographer, lecturer, outdoor enthusiast, on the ND spectrum. Main interest in transdisplinary research, tool making, exploring techniques, projects & roles amplifying the creative, educational, expressive and inspirational potential of (personal) computation, code as material, combining this with generative techniques of all forms (quite different to what is now called and implied by "generative AI").

Much of my own practice & philosophy is about , interconnectedness, simplicity and composability as key enablers of emergent effects (also in terms of workflow & tool/system design). Been adopting a round-robin approach to cross-pollinate my work & learning, spending periods going deep into various fields to build up and combine experience in (A-Z order): API design, audio/DSP, baremetal (mainly STM32), computer vision/image processing, compiler/DSL/VM impl, databases/linked data/query engines, data structures impl, dataviz, fabrication (3DP, CNC, knit, lasercut), file formats & protocols (as connective tissue), "fullstack" webdev (front/back/AWS), generative & evolutionary algorithms/art/design/aesthetics/music, geometry/graphics, parsers, renderers, simulation (agents/CFD/particles/physics), shaders, typography, UI/UX/IxD...

Since 2018 my main endeavor has been thi.ng/umbrella, a "jurassic" (as it's been called) monorepo of ~185 code libraries, addressing many of the above topics (plus ~150 examples to illustrate usage). More generally, for the past decade my OSS work has been focused on , , , , , , , , , /#VEX. Earlier on, mainly Java (~15 years, since 1996).

Formative years in the deep end of the 8bit demoscene (Chip Special Software) & game dev (eg. The Brundles, 1993), B&W dark room lab (since age 10), music production/studio (from 1993-2003), studied media informatics, moved to London initially as web dev, game dev (Shockwave 3D, ActionScript), interaction designer, information architect. Branched out, more varied clients/roles/community for my growing collection of computational design tools, which I've been continously expanding/updating for the past 20+ years, and which have been the backbone of 99% of my work since ~2006 (and which helped countless artists/designers/students/studios/startups). Creator of thi.ng (since 2011), toxiclibs (2006-2013), both large-scale, multi-faceted library collections. Early contributor to Processing (2003-2005, pieces of core graphics API).

Worked on dozens of interactive installations/exhibitions, public spaces & mediafacades (own projects and many collabs, several award winning), large-scale print on-demand projects (>250k unique outputs), was instrumental in creating some of the first generative brand identity systems (incl. cloud infrastructure & asset management pipelines), collaborated with architects, artists, agencies, hardware engineers, had my work shown at major galleries/museums worldwide, taught 60+ workshops at universities, institutions and companies (mainly in EMEA). Was algorithm design lead at Nike's research group for 5 years, working on novel internal design tools, workflows, methods of make, product design (footwear & apparel) and team training. After 23 years in London, my family decided on a lifestyle change and so currently based in the beautiful Allgäu region in Southern Germany.

A subdivided irregular grid of thumbnail images of some notable projects I've worked on (exhibitions, renders/visualizations, workshops, tools, physical products/artifacts), all of them involving generative design approaches and made with tools I've created myself. The selection covers projects from 2007-2020...
ALT text detailsA subdivided irregular grid of thumbnail images of some notable projects I've worked on (exhibitions, renders/visualizations, workshops, tools, physical products/artifacts), all of them involving generative design approaches and made with tools I've created myself. The selection covers projects from 2007-2020...
Flaki's avatar
Flaki

@flaki@flaki.social

Time for a proper introduction!

I'm an open-source enthusiast and self-hosting masochist. Initially a developer, still doing all things web, big fan, recovering conference addict. I am a focusing on & OSS communities in particular. Also a staunch advocate of flexible, async remote work.

I co-founded ¹ with @jer & @skade :ferris:

Frequently have Opinions™ and post about , especially online, , my & hobby (currently rebuilding, follow along at )

At my day job at radiopaedia.org I mostly complain about Ruby/Rails or DICOM² :ablobcatbongokeyboard:

For Canine Cuteness head to , @lumi & @iris :blobdogheart:

Other contacts and chat: link in bio :brows:

📸 by Juli Racsko

___
¹ proper fediverse presence coming soon, in the meantime check out @eurorust!
² Digital Imaging and Communications in Medicine en.wikipedia.org/wiki/DICOM

Flaki sitting on a bench in Tallinn with the coastal Noblessner area in the background. He has a white hoodie, jeans and lace-less black shoes, looking directly into the camera a bit squinty. His right hand is held up to the side, where Lumi the young blue merle collie is lying on the bench, sniffing his palm in search of treats. His left hand is full of colorful dog things, including a fox toy and Lumi's bright blue lead. The rest of the picture has a an overall faded, bluish tint and a white border that makes it almost feel like an album cover.
ALT text detailsFlaki sitting on a bench in Tallinn with the coastal Noblessner area in the background. He has a white hoodie, jeans and lace-less black shoes, looking directly into the camera a bit squinty. His right hand is held up to the side, where Lumi the young blue merle collie is lying on the bench, sniffing his palm in search of treats. His left hand is full of colorful dog things, including a fox toy and Lumi's bright blue lead. The rest of the picture has a an overall faded, bluish tint and a white border that makes it almost feel like an album cover.
Remko Tronçon's avatar
Remko Tronçon

@remko@mas.to

Blog post: A Core for mko.re/blog/uxn-wasm/

Xzibit Yo Dawg meme: “Yo dawg, I heard you like VMs, so I put a VM in your VM”
ALT text detailsXzibit Yo Dawg meme: “Yo dawg, I heard you like VMs, so I put a VM in your VM”
SpiderMonkey's avatar
SpiderMonkey

@SpiderMonkey@mastodon.social

We are a little late to the party. How about we do an ?

Hi Fediverse, we are SpiderMonkey, @mozilla’s engine for and .
SpiderMonkey is used in Firefox, Servo and various other projects.

This account is run by our engineers, and none of us know how social media works. We were told to use hashtags.

Nice to meet you!

Remko Tronçon's avatar
Remko Tronçon

@remko@mas.to

The video recording of my and talk is online: youtube.com/watch?v=QqW39jElFhA

Jason Howard :sdf:'s avatar
Jason Howard :sdf:

@jhoward@social.sdf.org

General Interests:

Tools I Use:

Looking forward to interesting conversation and people with similar interests.

matt 🦕's avatar
matt 🦕

@mattjbones@mastodon.social

👋

I’m matt and I spend a lot of my time building things that people use on the internet. I’m always down for chat on all things , , etc.

I’m part scientist🔭🥼 (in another life), part maker🔩🪛, part runner🏃🏽‍♀️🏃‍♂️, part climber🧗🧗‍♂️… the list goes on.

I’m also super curious about how works and the , so now that I’ve been afforded some time off I may take a deeper look 👀

Nice to meet you, let’s chat! 🗣️