HOOPS Communicator Image Service

HOOPS Communicator makes it easy to generate images (PNG’s) from your CAD Models via either converter or libconverter. However, while you can set a custom camera, the background color, the rendering mode and a few other options it does not give you a lot of flexibility beyond those settings when it comes to the image generation. Creating multiple images of the same model (with different cameras for example) is also time and resource consuming, as it requires retranslating the original CAD model. Finally, HOOPS Communicator can currently not generate PNG’s from its own Stream Cache format.

The node project linked below is attempting to address those shortcoming by providing server-side functionality to generate images from SCS files (or scz files with a bit of extra setup). It makes it very easy and fast to create multiple images of your models and allows you to inject your own JS code to customize the image before it is rendered (from isolating individual parts to injecting markup data to more complex use-cases). Under the hood most of the heavy lifting is done by Puppeteer which is a node based browser automation tool (puppeteer - npm).

Please check out the Image Service Project here:
HC Image Service GitHub Project

As always, if you have any questions or comments, found a bug or have suggestions for additional features or improvements, please don’t hesitate to post about it here in the forum. If you want to reach me directly, my email is guido@techsoft3d.com.

3 Likes

When I use the npm package ts3d-hc-imageservice, I always report this error at the start, is my use of the wrong way?


const imageservice = require(‘ts3d-hc-imageservice’);

The code is as follows:
const generateImage = async () => {
await imageservice.start({ viewerPort: 4200, });
}
generateImage()

I found that the puppeteer-core versions in the two places are not the same, is it possible that this is the reason