*blog... kind of... *rss 

Clean up
Don't include in your portfolio projects you wouldn't enjoy doing again.

That's something I learnt right when I started mrdoob.com. The aim there was just to share some experimentation and have fun, wasn't meant to be my portfolio but people started contacting me proposing interesting projects. At that point I took down my old (and boring) portfolio here and kept doing experiments over there.

So now it's time to apply that again... At this point I've no interest on doing Flash projects any more, hence I've removed all the Flash projects and experiments (files are still there, just not linked).

Wooohoo for JavaScript, Canvas and WebGL!! :D
a bit radical but why not after all... as long as you keep sharing cool things :)
May I ask what motivated you give up Flash?
@nicoptere: For sure!

@Elvio: Javascript is awesome. I can easily develop/deploy on Linux and is not compiled. The former requires a whole post for itself, but it's worth mentioning a few things about the later:

1 - No compilation time.
2 - No need to upload 2x files to the server if you want to share the sources, deployed files are also source files.
3 - Newbies can easily right click/view source and (maybe) learn a few things.
4 - I can easily improve an old experiment without having to look for the source files.
As always, wise words from the man....

mr.doob, keep on keepin on, you rock.

Nice one. Made me think about my portfolio. Keep up the good work!
You're still my hero :)
Just curious will you also be removing the Android projects etc. and basically just going js?
People need to understand that flash isn't good for the web, and I fully support your decision. Keep up the fantastic work!
Never say never! A bit disillusioned but maybe you are right. The future will show us if this will be the mainstream environment for web developers. Anyway i didn't think this is the right way to do things, ie to erase something done. To be a little philosophical the masterpiece is not anymore the master domain, it has a self-life.
BTW, follow your statement you should get rid off from your wonderfl works too :)
Wonderfl is not what people consider my portfolio...
I agree, and I am happy you removed all the flash stuff (I dislike flash personally), but you could still have a "legacy" section with your flash works.
They were cool to watch, I used to browse them eventually just for pleasure.
I felt a little sad, because your Flash projects inspired me to the hard work that gave me a job. I think you're a very talented guy, and you have your reasons for doing this.
You are brilliant and inspirational no matter what environment you elect!

Thank you.

js is the future! :)
First off, I really love almost each and everyone of you pieces wether it's JS, Flash or whatever else came to your mind at that time.
I still have to say, it's kind of sad since all you work was very insperational no matter what technology was used.
And to be totally honest, I stumbled upon your "portfolio" because of the Flash pieces you did a while ago.

But on the other hand I can 100% understand if one gets to a point where you don't want to be directly related to some projects you did a while ago, since it doesn't fit your point of interest any more for what reasons ever.

So to sum it all up:
No matter what's on you portfolio: Just keep up the good work!

Cheerio, Mathias
what a pity, vector is not dead
juste when flash begin powerfull
your work on tree is awesome
that take all your time maybe
or your a ipad user :)
Hey mr.doob,

I was thinking the same thing towards Open Source projects. What will you do in that regard? People will still bug you and say, fix this, fix that, bug this, bug that, feature this and feature that. Would you just close it down and remove it, or just leave it?

Same thing towards your Flash work, won't it been better if you just placed a "nuked" icon on those pages and said, no longer in development. It is always nice looking back at what you have accomplished. I look back at the first piece of code on my old site and I laugh and brings back memories.

- m0
Thanks everyone for the encouraging comments, I somewhat didn't expected such reactions :)

@Mohamed: AS3 open source projects are a different thing. They will still be available but I wouldn't be maintaining them any more. Take this one as example:


No point on deleting it, it's out there for people to use if they find it useful and if someone wants to keep maintaining it's a matter of forking it :)
I'm very much the same :) I've been thoroughly enjoying getting more involved with HTML5 & WebGL.

Interesting times ahead, good sir!
Hey, I'd love to know what your tools & workflow consist of? As a Flash developer, I love the sophistication of tools such as FDT, awesome MVC frameworks such as Robotlegs and essential libs such as TweenMax & LoaderMax.

I would eventually like to start dabbling in creating rich media/experience sites using JS + Canvas, but would love some advice on where to start with a view to replicate the things I love about Actionscript. Maybe this topic is worthy of an entire post?

BTW, do you really not miss the compiler at all? I think I'd hate having to rely purely on runtime error debugging.
I love javascript and its magic!
How much did they pay you? :p
You say would not be missing the AS even with molehill knocking at the door?
While I understand your reasons for removing the old flash projects from your site or portfolio, its a bit sad to have your flash experiments gone forever. What would be better if you can make just a small linklist with those past flash , separate from your site and with a clear desclaimer that you won't support them anymore, just for archiving purposes. This should be easy as the files are still there.
So people could still access and enjoy and learn .
I think a major problem with the web as (artistic) medium of expression is that it lacks history and archives and forgets all, unlike other media like books, musaic,art where at least the good stuff gets archived.. Most of past websites,apps and art gets lost in Nirvana, and soon younger people won't even remember how the web looked around 2000, nor there will be a way to show them . I loved and love your work ... so plase dont let it dissapear..
I'm not deleting them, just removing the link. You can still (somehow) find them here:
I like what you are doing forging ahead with js, but I'm still a flash guy because regardless of all the arguments about what sucks about flash, it still is more powerful and flexible than any other technology that I have tried. and that statement "flash is bad for the web" is TOTAL BS!!!! flash MADE the web, sure it may not be as popular as it once was, but I'm not ready to throw out the technology that saved my ass from an insanely boring "office space" job!

I don't even hate iphone - the more different platforms, the more competition and creative variety.

flash has been good to me... I'll always view it as one of the coolest and influential technologies ever invented.
Hi Mr doob,

What about mobile? Basically, none of your html 5 things run properly on mobile browsers, (except ironically the ie6 message), yet flash is fine on android...
All in good time.
I have been a Flash developer since Flash 4, and recently changed from Windows to Ubuntu on both my computers.

It is interesting how my perspective has changed since moving to Linux full-time. For the first month or two it felt as if everything worked fine except for Flash, which was constantly crashing my browser and jumping out of tabs.

Were you ever a FlashDevelop user? On Windows, creating art assets in Flash then writing code and compiling with FlashDevelop is fun and efficient, but somehow it all feels different when Flash only runs in VirtualBox, and highlighting in gedit or vim is generally basic.

Instead of Flash I have been using Javascript for my current project. I previously made a 3D tool for this client (http://www.eldoradostone.com/outdoor/tool/) which turned out well, but I just haven't felt up to doing all my work in Actionscript this time around.

I really enjoy three.js, but everyone at my client's office is using IE 8. Have you been able to get three.js working with a canvas replacement?
Yeah, I used FlashDevelop, and FDT. All good stuff if you're on Windows :)

I've never tried canvas replacement libs for the three.js renderer. I'm curious to see how you're Flash Renderer turns out :)
I have considered a number of different approaches, including a new renderer, or even Node.js to do the processing server-side and get over the headaches.

Emulating the canvas seems to be the best approach long-term, as it means that there is less code to maintain. So far I have made the process pretty easy to set up, and I've also made it work cross-browser. One of the things I wanted was to test and compare the Flash canvas without going to Windows. Even though the other browsers do support canvas, there's no reason to exclude them from support.

I can see my rotating cube without flickering, and the frame rate is fair. The image is being clipped slightly and the fill is coming through as black. With a little more work I hope to have an accurate rendering, then I could lean into optimizing performance. Hopefully I will be able to have my demo running in about a day or so.

It takes longer to render in Flash since data needs to be marshaled from Javascript, but I implemented a lock so you can lock the Flash canvas, render the next frame with three.js then unlock it so it displays.

I am trying to make it non-intrusive, so both of these examples would work:

fcanvas.create ("canvas-container", function () {

var canvas = document.createElement ("canvas");
context = canvas.getContext ("2d");

context.fillStyle = "rgb(200,0,0)";
context.fillRect (10, 10, 55, 50);

context.fillStyle = "rgba(0, 0, 200, 0.5)";
context.fillRect (30, 30, 55, 50);


fcanvas.create ("canvas-container", function (canvas) {

context = canvas.getContext ("2d");

context.fillStyle = "rgb(200,0,0)";
context.fillRect (10, 10, 55, 50);

context.fillStyle = "rgba(0, 0, 200, 0.5)";
context.fillRect (30, 30, 55, 50);


I will probably not support it quite yet, but I want to also make it possible to use "virtual" canvases, which work properly but are not visible. If you are displaying on one canvas, but are using other canvas elements as a sketch area, the extra elements could piggy-back off of the same SWF instance, so all two or three will function properly, but you only need to embed one SWF.
I understand your decision to stop developing in Flash (Even though I'm a vivid Flash developer myself, but that's another story), but I really can't see the reasoning behind removing all your existing Flash files.
Joshua: Awesome stuf!! :O
Brijolaxew: It's all in the first sentence in thie post.
webGL and js are goood- but imo they still have some big issues for large codebases.

have your seen the haxe project Jeash? https://launchpad.net/jeash

I did a test exporting a box2d game i made (originally for flash), and it ran ~20fps - not too shab. And this is totally unoptimized - box2d ported to haxe, compiled to js - im sure there is a lot of room for improvements. (like using polygonals haxe optimized motor2 physics engine)

Ill post up the test soon - i'd love to see this project get some popularity however, as i think it has great potential, and it definately worth a play
Can i download it? how?
you're the best EVER dude. keep it up! you're extremely inspiring.
Hey there,

If you're interested, I created some files to support code completion for three.js:


If you create a project using haXe for Javascript, it is basically like strongly typed Javascript, similar to Actionscript 3.

With externs for three.js, you can write a whole project with code completion. I'm using a plugin for gedit that works pretty well -- not as well as FlashDevelop on Windows, but still much better than no completion.

I posted a little more information on my blog.

I'm not exactly sure why I didn't realize that ro.me was built using three.js. Very cool. You guys have done a great job
Oops, I'm sorry! I didn't mean to post the link to my blog here... I'm not trying to self-promote.

The project is posted on github:

Hello, I am also fascinated by Three.js, and is trying to learn it for the past several days..

I am wondering (since Im overwhelmed with its scripting) is there any such thing as Global Illumination feature here in 3js already built? and if I have a script using GLSL, how do I implement with existing code?

I am also having a problem trying to display text in 3js, is there any such feature here?