PaintSupreme 3D v1 - An HTML5 Story

PaintSupreme 3D v1 - An HTML5 Story

The story of PaintSupreme v1, by our CEO Markus Moenig.

I developed cross-platform desktop products most of my life. I just love the feeling to build up a useful application from scratch. My first application was one of the very first video editors, MainActor, back on the Amiga.

How things used to work for me

My apps were mostly coded using Qt and similar C++ based cross platform application frameworks. However I always had reservations about it all.

  1. Developing in C++ always felt like overkill for 90% of the tasks at hand. Considering that most code in an application handles the user interface (UI) and application states, C++ felt a bit like a cannon when you needed a hand gun.
  2. The number of target platforms (mostly Windows, Mac and Linux) and the 3rd party frameworks used, created something very complex very quickly. Your binaries became huge, many platform specific bugs in 3rd party frameworks needed to be sorted and the compiling and linking steps differed on each target platform.
  3. Once in a usable state, installing your application on a given target platform is non-trivial, sorting the binaries and dependencies needed for each platform is work, real work, creating the installer is too.

 All in all I was not happy, I wanted to focus on the fun part, building the application itself.

A better solution: HTML5

The rise of the internet created over time a new generation of web browsers and related technologies. Modern web browsers are, I think it is safe to say, the most tested and robust application delivery platforms ever created.

HTML5 based applications are traditionally very popular on mobile devices. The reason being that the UI of a mobile app is very similar to that of a Website.

However, with new technologies emerging, full blown desktop applications are also now possible:

JavaScript / ECMAScript

JavaScript started out as a simple scripting language for the Netscape browser. Over the last decades it became a full featured development language, especially with ECMAScript 2016. The introduction of JIT compilers helped to increase the performance, to a level where, for most common tasks, JavaScript can now be considered on par with C++ in speed.

WebGL v1 / v2

WebGL introduced 3D graphics to the web. However it also can help you to accelerate your application, WebGL shaders can easily be used to implement image and array based operations, a task where JavaScript is still slow. We use WebGL shaders a lot in PaintSupreme 3D.

WebAssembly

WebAssembly brings C++ into the browser. You have a task for which JavaScript is not really the perfect fit ? Just implement it in C++. You can also use WebAssembly to compile existing C++ frameworks and make them available in your Web project.

The last problem: The User Interface

Having all these technologies available is great. But what about the user interface ? The DOM model of HTML5 is not really suited for Desktop like applications.

This is why I decided 3 years ago to write my own JavaScript application framework, ViralGraphics.io. It uses all available 2D and 3D web technologies to enable good looking, complex, desktop like user interfaces. For me it was the last piece of the puzzle needed to start writing some serious applications for the Web (and Desktops).

PaintSupreme v1 - Deployment

PaintSupreme has just become available in v1. And is not only available for the Web at PaintSupreme3D.com but also for Mac OS, Windows 10 and Linux and is already inside the Mac AppStore as well as the Windows Store.

Another great piece of technology which makes all this possible: Electron. It packages your HTML5 application and makes it available as native desktop applications on all major desktop platforms. It even offers support for various store specific formats like appx for the Windows Store.

What used to take me days creating all distributions for all platforms is now a matter of starting a nodejs module, i.e. a matter of minutes.

The Future

In my personal opinion, HTML5 is the future for cross platform development, not only on mobile, but also on the desktop, and yes, even for multimedia applications.

We will continue to work out PaintSupreme v1 with the target to provide the full feature set of native desktop applications (of course at the same speed).

Follow up 3D modeling and raytracing applications are already in the pipeline and we hope to deliver them within the next months.

The future is ... exciting!

Be the first to comment

All comments are moderated before being published