How the Substance Source Interactive Cloud Viewer Came to Be
The Cloud Viewer can be summed up rather simply. It is a player for Substance materials which comes from Substance Source. It is currently able to read the entire collection that comes from Substance Source - but nothing else, for the moment.
In the Cloud Viewer, you can play with a material’s parameters, explore the different variations that artists have created, and see them in real-time in the 3D viewer. This means that assets are lit correctly, and they can be rotated in order to view all details. You can also explore additional variations that artists may not have planned, to better understand the nature of a Substance material. That, essentially, is the basic intention of this tool.
The idea behind the Cloud Viewer is quite old; I began thinking about it seven or eight years ago, when I first arrived at Allegorithmic. The idea came from a simple observation: people exchange Substance files, but can’t easily view them at any time. At that time, you had to install something like the Substance Player, which is a native software tool. It occurred to me then that current technology - at the time it was WebGL - was already sufficiently developed to the point that a solution might be found. I began working on it.
We soon had a functional prototype that made it possible to view very low-resolution materials. There was still no standard model of illumination, like PBR, so the materials didn’t look quite as good as today. Nevertheless, it was functional.
But to make it really work, we needed access to powerful machines in the cloud. At that time, we didn’t have access to a cloud provider capable of handling machines with powerful graphics cards. We also didn’t have a platform team to create it. So it remained a prototype for a long time.
A year and a half ago, we reopened the project. By this time, we at last had everything we needed: a platform team on hand, motivated people, and sufficiently advanced technology.
We had access to the Sketchfab player, which was scalable and used shaders that look like the ones we use in our software. We knew that this was definitely usable on the Cloud Viewer. This eliminated part of the technical problem. But we also had to build something giving us the possibility of rendering the Substance materials on remote machines, and streaming them to customers’ browsers.
In the team, we’d decided that Friday afternoons would be dedicated to non-emergency projects, so we used that time to work on the Cloud Viewer. After three or four Fridays, we had a functioning prototype that was able to read the Substance materials that come from Substance Source, and to visualize them correctly.
Of course, the UI was not quite there and there were still plenty of small glitches at times. So we let the idea mature a little.
After some time had passed, we re-architected the back-end, computing and rendering service. We needed the system to be both economically and technically viable.
The first version we made would have been too expensive to put into production, so we worked around that a lot to make it viable. There were long breaks in the project, simply due to a lack of time to work on it, and it was really only this summer that I was able to focus on the project once more, and work on a version that was ready to go into production. And that's how the Cloud Viewer was born.
Today, we have a tool that works rather well, that is not too expensive, and technically sound. It’s also able to support much higher resolutions than seven years ago.
One of the biggest technical challenges has been to be able to use the Substance engine on the cloud. This is because we consume graphical APIs, which aren’t intended to work on remote cloud-type machines, even though these have noticeably improved.
The difficult technical aspect is the need to manage a huge amount of data, because you transfer high-resolution images, which are costly, in terms of resources. Furthermore, many people can connect at the same time, so we have to do everything we can to reduce the tool’s requirements, so that the entire operation takes as little time as possible.
For this reason, we cache a lot of things which have already been calculated, distribute them quickly, and try to be closer to people. This is why we have data centers in both Europe and the United States, because our users are primarily located in these territories.
The construction of the Cloud Viewer was possible thanks to the support of the Google Cloud Platform, which is the cloud provider for almost all our infrastructure needs. Our contacts there also gave us some insights into the project to help us use the platform efficiently; we’d like to thank them for this.
We have some ideas for the Cloud Viewer in the future. We would really like to propose integrations around Cloud storage platforms (Google Drive, Dropbox and the like). That way, people can easily store Substance materials and view or review them directly.