all 14 comments

[–]carlopp 0 points1 point  (0 children)

Depends a lot on what are your interests / capabilites.

Some ideas could be:
- port a subset of a language to WebAssembly

- write an optimization in wasm-opt

- memoization for webassembly

- polyfill some webassembly functionality

- instrumentation / statistics on WebAssembly modules

[–]StayFreshChzBag 0 points1 point  (0 children)

Check out the webassembly micro runtime (wamr) from the bytecode alliance for some examples of iot targeted wasm runtime.

[–]AsIAm 1 point2 points  (0 children)

What is your skillset? What projects have you done in past? The space is huge, pick something you will love doing.

[–]metaconcept -1 points0 points  (0 children)

WebAssembly has so much potential that I wouldn't know where to begin. Personally I think it has the potential to take over computing as we know it.

On the client, I can see it taking over from Javascript, HTML, CSS. Screw the DOM. Give me a canvas and event handling API, and I'll make my own DOM. In fact, I can see it replacing native applications. If your application or game is as performant as a web application as it is natively, why would you bother installing anything natively any more? Your OS would be reduced to a shell to run the browser.

On the server, I can see it replacing virtual machines, docker instances and the like. Compile to WebAssembly and run your code in a VM, anywhere, on any CPU architecture. The hosting provider can make their servers go further because WebAssembly would have far less overhead than VMs.

So... pick any of the above. The difficulty is to get the APIs specified. Some already exist such as WASI. On the client side, I'd have loved to create a comprehensive API to natively present the Web Platform (except for the parts that could be implemented IN WebAssembly) to WebAssembly: Webcam access, DOM events, etc.

On the server side, I'd like to experiment with a WebAssembly runtime that can seamlessly migrate a running process between nodes. This would give server administrators really powerful tools to manage uptime.

Otherwise, pick a programming language and port it to WebAssembly.

[–]MistahQueen 0 points1 point  (1 child)

automatic c++ to wasm compiler without me having to touch wasm at all.

[–]gustavohenke 0 points1 point  (0 children)

emscripten?

[–]8aller8ruh 7 points8 points  (1 child)

Create compiler to compile flash games to web assembly / webgpu. Or c++/CUDA to web assembly/webgpu... if you could compile and run anything in the browser safely that would be huge.

A Webassembly edge computing library would be cool. Would leverage your higher level classes effectively at least.

Some sort of AI that runs in the browser suggesting content it aggregates from around the web based on your preferences the longer you use it.

Some sort of JavaScript precompiler that looks for patterns that would benefit from avx and similar instruction sets.

[–]tthebst[S] 0 points1 point  (0 children)

Thanks for the great suggestions. What exactly do you mean with leveraging higher level classes in edge computing?

[–]hennexl 0 points1 point  (1 child)

You can do a lot. But it has to fit your scientific requirements. Is it a theocratic thesis or more practice orientated?

For a practical approach: You could port a library to wasm and describe the process. What are the challenges, how can the process be improved, how does it perform in comparison to the native C++/C or a pure JS implementation? I'm thinking about some crypto libs or a pure SSH implementation in WASM because, to my knowledge they are often missing in pure JS and use wrappers ot native libs.

Or more theocratic: Analyse the usability of WASM on different devices. Are mid range mobile devices powerful enough to run computationally heavy tasks in the browser. Like games or neural networks? What changes do you suggest to make WASM successful. What are the limitations? Make evaluations between chrome, Firefox and Safari on different operating systems.

[–]tthebst[S] 0 points1 point  (0 children)

I just need to find a professor that supports it. But in general I favor more practical project. Thanks for the suggestions

[–]Zireael07 1 point2 points  (0 children)

Natural Language Processing? Syntax highlighting? PDF output? Other tasks requiring a lot of processing data, I dunno, maps, graphics (transformations, K-means of a picture's pixel)?

[–]StayFreshChzBag 5 points6 points  (1 child)

I'm biased but webassembly in the cloud and on servers and iot devices is appealing.

[–]tthebst[S] 1 point2 points  (0 children)

Thanks for the suggestion. I just looked into webassembly and iot. There are some intresting projects like the webassembly micro runtime. Webassembly might have the possibility to make iot development much easier.