31 comments

[ 1.4 ms ] story [ 118 ms ] thread
Still waiting for someone to develop a WebGl-based physics engine. Even the 2D ones are slow - every single one I've tried so far struggles even with a thousand simple boxes.
The right path seems to be a WebAssembly build of an actual C++ engine. That's pretty close to this, which uses ammo.js, a workerized emscripten/ASM.js build of Bullet.

I've been meaning to experiment with doing precisely this :/.

Whitestorm.js uses AmmoNext (better Ammo.js) I mean that ammo.js runs bullet physics, and AmmoNext runs Bullet Physics 3.

About WebAssembly - it is a future of Ammo.js/AmmoNext. We are planning also to make AmmoNext modular with wasm modules.

Sounds awesome! Looking forward to it.
First I thought it is my weary old notebook, but as it turns out it is not just me.
Interesting, once I get ThreeJS support working for HolographicJS (https://news.ycombinator.com/item?id=12913052) I'll be sure to get give this a shot with HoloLens!
Cool, may i participate somehow?:P
Sure, if you know C++! :) I should probably create an issue outlining the things that still need to be done.
Oh, I know only javascript(

Can you contact me in discord chat(see the link on github readme page)?

So WebGL is disabled in chrome and I used Safari but Safari doesn't support arrow functions. rage quit

I really think this is cool. I wish I could see it. Do I need to enable WebGL in Chrome manually?

WebGL is enabled in Chrome by default. WhitestormJS is compiled with babel (and examples are too). I'll check if it works on safari in the nearest time. Thanks for report!
Okay, so it doesn't work in Chrome or Safari, and here it doesn't work in Firefox... where does it work? I.E.?!
For ~dozen major versions now, Chrome should support WebGL by default. I do know, however, that there are a small number of graphics cards that are blacklisted and WebGL won't work on them (by default)
Hey Alex, what does the roadmap look like? Is there a company around this project or is it more of a hobby thing?
Hi Alex, I think we met at ISEF 2016 (if not mistaken), and it is great to see this project continuing to evolve and on display on the HN frontpage. Congratulations!
Ah, yep! That's true) Nice to meet you there:D Thanks!
This is really amazing work, it is silky smooth, never dipping below 60fps on my system. Things like this are why I love computing. Keep up the great work.
This page: https://whsjs.io/#/

Looks like it should have examples or demos. However the 'try it out link' leads to an empty playground (despite a peculiar hover effect showing exactly what I thought I'd find there).

How did people find this link? https://whs-dev.surge.sh/examples

Sure, I just forgot about it. I will add as soon as possible. Thanks for a note!
What application can I use to generate those JSONs for the models?
For the models you may generate their file with blender or other 3d editing tool.

But if you mean things like spheres, boxes, tetrahedrons and others - you may write them manually, isn't it easy(?)

It's 50% chance that we will make an editor for it (cause it will be super easy with such API)

(comment deleted)
(comment deleted)
Hey Alex,

Thanks for leading this. I can't wait to play with and hopefully integrate this into our project at http://itsme3d.com - it seems like Christmas has come early this year.

I do have some advice for you, though: you need to tell the story. In that story, you need to start with why.

https://youtu.be/IPYeCltXpxw?t=15s

While your GitHub README.md is better than the project's homepage, both currently fail to answer the most basic questions about Whitestorm.

- is this for me? am I the target audience?

- what is the reason this exists? what are some real use cases? is this an experiment, a hobby or something I'd use in production?

- how hard is this? what is the minimum viable amount of time/energy required to get started?

- one of my favorites... "what tool I use does this replace or improve?"

- is it ready today or should I come back later?

- what is the cost? (don't assume everyone "gets" open source)

More significantly, I believe that every project should start with the origin story. Who are you, what problem did you have, how did that turn out, how did things evolve to get to the iteration in front of me? Why was this problem so important to you? Make it personal. Use "I" and "my". Talk about your goals and ambitions. Don't use "we" or terminology that is designed to make you sound more legit. Software is designed by people and people make decisions based on shared values.

Make sure that your plugins are well documented. Make sure that your examples are plentiful. If you have time to write an example then you have time to write a few lines about what this particular example is showing me. Also, something nobody does but I wish that they would is to use comments to tell a story and mark off sections that differ from the boilerplate template and explain what you did to make it work.

The hardest part of launching and promoting an open-ended platform is that there's a tendency to tell people it can do "anything they can imagine". The problem is that they have no constraints on what's possible and most people are not intuitives so they only see things as they are instead of what they could be. You need to give them just enough lightbulb moments that they start to learn what's safe to imagine is possible with your software.

When you create a platform you have to give people a path to happiness and success that calms their reptile brain and gets them excited to be a hero. The burden of proof that they should trust your software for the long haul is on you.

Keep up the great work.