Antti Ylimutka

SceneStream 1.7.15 - Release notes

Back to blog
March 25, 2020

umbra scenestream hosting and delivery platform for large 3d

It’s been a while since we’ve updated you all what we’ve been up to. But up we have been despite the adversities our planet and society is facing. Hope you are all safe and sound!

Enter SceneStream

As any engineering heavy company, we have been rather imaginative when it comes to product names. We finally took some time to sit down to figure out a descriptive and functional name for… well, what used to be called Umbra4.

After many rounds of debate and voting, SceneStream was the winning choice - after all, the product reconstructs and optimizes your input 3D scene for efficient delivery to end-user devices for real-time rendering.

We like it, hope you do too!

Release Notes

We’re currently pushing out new releases every week and updating the release notes to our Support Portal. We intend to create a blog post every once in a while to highlight some of the work we’ve put in… so here goes:

New SDK Out

One of the bigger pushes we did late 2019 was releasing a new version of the SceneStream SDK. While the work isn’t done yet, we already have partners integrating our hosting and delivery service into their products. If you aren’t one of those partners yet, you can send us a request for access and while waiting for your “Open, Sesame”-moment, feel free to dive deeper into the SDK docs.

Multithreaded Runtime & 10x Faster Streaming

Big 3D data is big - even compressed. And with SceneStream, it can be as big as you like it to be. This means you should never be hindered by anything other than the speed of your connection to stream the 3D for real-time rendering. And this is exactly why we multithreaded our runtime.

umbra scenestream helsinki 3d streaming

We started out by implementing this to our Unity SDK. Emboldened by how much faster it made streaming the 3D data in, we decided to do the same for our public web player using Web Workers. The end result is easily 10x faster streaming - or often whatever speeds your network bandwidth is capable of.

Feel free to eat your heart out as you test how fast your connection downloads one of our demos!

CLI: Nifty New Features

While these might be useful only for our power users, let’s still go through a couple small features we implemented due to plentiful customer requests:

--clip-box “minx miny minz maxx maxy maxz”

Input six values (floats/ints) for SceneStream to conduct the umbrafication only on the content that intersects with the given clip box. As we use our internal spatial units for the check, you will most likely get some extra context to the output. Nonetheless, a really helpful feature that enables faster iteration for large 3D input to find the perfect feature size for your content.

--import-obj-origin “0 0 0” --import-las-origin “0 0 0”

Defines a custom origin for your input. Format is expected to be 3 values, ie. "0 0 0" that’ll transform your input scene to origo. Comes in handy if you have input where the coordinates end up causing “nice” floating point errors everywhere. Not anymore!

--import-obj-split-width 1.0

Sometimes huge individual OBJ-files can cause issues uploading the data. Just give this a nice float of 1.0 as input to divide your input scene into smaller chunks for more success umbrafying your 3D content.

--import-las-rgb-range 65535 --import-xyz-rgb-range 1

Color values can have arbitrary ranges in your point cloud files. By default, we expect the colors to range from 0 to 1 for XYZ and 0 to 65535 in LAS. However, now you can customize the value depending on your input and avoid those wonky-looking outputs.

That’s all of it for today. We’ll keep you posted as new features are made available.