bergis reptile zoo of software, hardware and ideas

RawDevJS Release

It’s been a while since I was working actively on my JavaScript raw image developer called RawDevJS. In 2012 I ported RawDev, my C++ raw developer, to JavaScript. One year before pics.io, the first commercial service, was available. New APIs like WebWorker, WebGL and WebCL have made it possible to implement fast image processing applications in JavaScript. At the parallel 2013 conference I showed the possibilities of JavaScript Parallel Computing APIs on the basis of RawDevJS. The slides are available here. I also gave a talk about it at the MunichJS JavaScript Meetup in September 2013 with the title RawDevJS – ein JavaScript Raw Entwickler (even if the title is German, the talk was in English - A spontaneous decision).

I thought soon we will have real cloud image processing apps. But now, 5 years later, there is only pics.io, which I didn’t even know until now. I discovered it while I was searching for links for this blog post.

I have too many other projects to continue my work on this project, so I decided to make it open source. I’m pavonine when it comes to code, so I made a quick rewrite in ES6. The WebWorker code was removed, because it didn’t work anymore with the current version of Node.js. I had already a look at more up to date libraries to bring back that feature. The performance gain would be big, so it would be worth to have a look at this. The WebGL code used a different filter pipeline and today there are better options to write filters for JavaScript and WebGL, like turbo.js and glsl-transpiler. That’s why I also skipped that part. The WebCL code was written before the spec was final. I even had to adapt the code during development to the API changes. Also there is no native support for WebCL by any browser until now. So I also skipped that part.

The result is available at the RawDevJS organization on GitHub, which contains 18 repositories today. One of them is rawdevjs-browser fetches and renders DNG images into Blob URLs, which can be display using an image element.

<div class="rawdevjs" data-src="http://static.bergnet.org/IMG_8801.dng"></div>

Another one is rawdevjs-cli, a command line tool to convert DNG images to PNG images.

If you are interested in participating or in adopting that project, please contact me!