Skip to content
This repository has been archived by the owner on Jun 24, 2022. It is now read-only.
Daniel Wirtz edited this page Feb 18, 2018 · 4 revisions

Welcome to the WebAssembly Studio!

Vision

The project's vision is outlined in "Learn, Teach, Work and Play in the WebAssembly Studio".

Learn

  • Users can control, inspect and understand every part of the WebAssembly compilation pipeline.
    • Source language, Wat text format, Wasm binary format, x86/ARM disassembly in the browser.
  • Users can inspect and modify compilation artifacts: .wasm, .wat, etc.
    • For generated artifacts to be modified, we need to work out a good UI to not overwrite changes.
  • Users are given useful feedback to guide them along the way.
  • Users can inspect runtime state:
    • Memory, Profiling, Debugging
  • Make build system explicit and familiar to JavaScript programmers.
    • Gulp-like, virtualized file system.
  • Don’t hide details (or add magic build steps), keep workflow straight forward.
  • Invite collaboration, sharing.

Teach

  • Teaching others is the best way to learn!
    • Users can create, modify, fork and share fiddles.
  • Reduce friction, no accounts, sign-ins or anything like that:
    • Unless users want to participate in an online community of fiddles.
    • Encourage engagement by keeping track of fiddle likes, forks, shares, etc.
  • Users can conveniently document their fiddles:
    • Markdown support.
  • Users can embed fiddles in Medium and other social blogging platforms.
    • A light read-only version of the fiddle is embedded in a page, with a link to a fully editable environment.

Work

  • Users can use the Fiddle to get started with WebAssembly projects.
    • Ability to download projects locally
  • The Fiddle can scale up to larger projects, not just toy examples:
    • Demonstrate that the tools are of “production” quality, not just toys. Might be overkill for a fiddle application, but it’s important in gaining user trust.
  • Users can use individual features in the Fiddle to do one-off tasks:
    • E.g.,
      • Type some .wat download .wasm
      • Type some C/C++/Rust function, download .wasm with glue JavaScript code to embed in an application.
    • Allow users to upload files.
    • Don’t force users into a particular project structure.
    • The Fiddle is a tool, not a framework.
  • Influence JavaScript developers through well-thought out examples, best practices and templates.
  • Add support for many languages: C/C++/Rust/etc.

Play

  • Create environments (wizards) where users can play and have fun with:
    • WebGL, Physics, Games, Audio Synthesizers
  • Compete on highest quality: smallest / fastest implementation of X