Realtime Three.js Coding
mrdoob.com
mrdoob.com
I guess it's really difficult to implement something like that in Objective-C though. While it's possible to replace methods through method swizzling with new methods (say from a category), and while Objective-C allows to add categories to a NSBundle and dynamically add that NSBundle to a running app, this doesn't work on iOS as far as I know due to security limitations.
Hotswap is great for tweaking values/logic after you've nailed down your method flow but it can have negative effects as well which aren't immediately apparent. I've seen a few hunks of code end up overly complicated as the developer hit a point where they really needed to break the code into more methods but didn't since you can't Hotswap in new methods and they didn't want to wait for the app to restart.
I don't really know how you would do this with Objective-C as its compiling to machine instructions. It would be very tricky as you don't have the luxury of a VM that explicitly supports it running your code.
Either way, very cool way to play around with three.js without having to switch back and forth to the editor.
You can find it here: http://www.krause-software.com/hotswap/
I think it worked so well for notch because the code he was changing was in a different class than the program's entry point, so the virtual machine had it easy swapping the code. Once again, I don't know the details, it is just my impression from what I saw that time.
It would work well with mrdoob's editor, and it's all JavaScript (no HTML or CSS to deal with).
From the top of my head (fluxus) [1] and impromptu [2]. And I bet every game company have their own live editing tools.
Anyway, </rant>.
What inspired me was this video of Iq's live coding setup [3] from last year. Months later I made a webgl version [4] to help spread glsl know-how. Then doing the HTML/CSS/JavaScript one was just natural de-evolution :)
[1] http://www.pawfal.org/fluxus/
[2] http://en.wikipedia.org/wiki/Impromptu_(programming_environm...
Though it's currently hard to do 3D, we have similar features in the Khan Academy CS section:
However, we don't restart the code from the beginning when you change something -- you'll notice that if you change the code in the linked page, the icosahedron jumps to a new angle, whereas with the KA environment, execution continues from the current state.
With our environment, you can interact with it and it'll maintain that state as well.
I'll let John write up the details in a future blog post, but mostly there are a lot of strange edge cases and problems that have to deal with maintaining closures, etc.
This is a cool interface. It's fun to use math/graphing libraries in design. I used one for this: http://webp2p.org
Good stuff
That's a rather unfortunate typo :)
The text also seems to randomly become bold and/or disappear and flash on the screen when trying to select text.
Works fine for me
http://dl.dropbox.com/u/22541447/motorboating-pirates/index....
I don't think one could lower the entry barrier any further. More projects should use this approach.
I started playing with it immediately and I am already thinking about projects I could use this for.