hey a1k0n, we'll definitely have to take a look at the port you dropped in your post. we didn't do a ton of research before hand, but we were debating between box2djs and box2dweb. in the end we choose box2dweb since it's self contained within a single file and was supposed to be more up to date.
i don't think what you're saying is totally off topic. box2d is pretty awesome and it's surprisingly easy to get physics simulations up and running using the library.
The thing about the emscripten version is that their own demos seem to GC-pause constantly on Chrome. I'm assuming the emscripten-generated code is making tons of incidental garbage, but I haven't profiled it or anything; it's all Closure-compiled and impossible to read. I'm still using the old old old actionscript port of the old version, and wish I had seen box2dweb sooner.
btw disasteroids is hilariously awesome. Great work.
Emscripten generally speaking does not produce garbage because it uses a virtual heap. If you profile the demos using a heap profiler like Chrome's you will be able to observe this. The pauses are likely due to bugs in V8 that cause it to recompile a page's JavaScript constantly (it has a lot of them). The cost of those bugs ends up being higher than that of equivalent bugs in Firefox's JS engine because of the way V8 is designed.
Either way, though, if you have a reproduction case for those pauses you should definitely file a bug about it on the appropriate tracker - emscripten's if something is wrong with the generated code, or chromium's.
We've been testing out ammo.js (Emscripten compiled Bullet) for 3D physics. In this demo http://apps.playcanvas.com/will/ammo/crates after the first couple of resets, it runs smoothly.
It does indeed seem to be the JIT warming up. The good news is that Chrome Canary is significantly smoother, so 6-8 weeks until that hits stable.
ah, it might be that we only tested on chrome. the project only allowed for 48 hours of development, so we can't really say that we made the best effort to keep it cross browser compatible. once the voting period is done and the code freeze is over, we're thinking of implementing a lot of bug fixes and changes that hopefully would address that.
I'm mainly a Python programmer now but used to use PHP fairly extensively. I defended PHP for its ubiquity and how easy it is to get started using it until I saw what was going on with the development of PHP6. That's pretty much when I decided that, personally, it's no longer a language worth investing in.
- Swype: I can't type on a mobile phone without this thing anymore.
- ConnectBot: For random times when I need to address an issue by SSHing into some servers.
- Evernote: I used to use the Google Docs app, but have since replaced it with Evernote for all my note taking. It has a native app for most if not all devices and works better IMO.
- Wunderlist: This is a recent addition that has replaced GTasks. It looks better, has a native app for all platforms. Unfortunately, Android version doesn't let you reorder tasks, but I'm willing to live with that since I'm near a computer all the time.
- Netflix: Great for roadtrips or longer drives. Unlimited data plans are awesome.
- Skype: For free video calls.
- Amazon Appstore: Free faily apps. Hit or miss, but some great stuff on certain days.
Sorry that's my fault :( We deployed and tweeted about our 1st version an hour before the code freeze and some guy came on and trolled the server by changing instruments and effectively froze all the connected clients. After seeing that, I whipped up a rate limiter in the final minutes that disconnects people based on a crude warm up/cool down system, but set the limit a bit too strict.
Thanks crenshaw. In the near future, we plan to do a little more behind the scenes as well as a few more in depth technical write ups that focus on specific aspects of the project. Sounds crazy, but there was a lot to talk about for a short 48 hour period and we had to cut it down for this post.
Thanks for the post, definitely going to check it out!