Weekly Changelog: New camera controls, new library for sending data to Speckle, and more!

Happy Friday @Community!

We’re back with more great product improvements from the last two weeks. Everything is live on app.speckle.systems so go check it out and leave feedback in the comments!

New camera controls

We (= @alex) have completely reworked the viewer library’s underlying camera controls. New orbit controls implementation, new fly controls implementation, fresh start.

Some of the things you will notice:

  • We now zoom based on the cursor position instead of the center of the canvas.
  • You can zoom infinitely
  • Zooming and moving feels smoother
  • No camera plane clipping issues when in orthographic mode
  • No incorrect camera positioning when switching between perspective and orthographic mode

And soon:

  • Proper fly mode with WASD keys – stay tuned

On top of this we’ve added the concept of SpeckleControls which is a base abstract class for any camera controller. This paves the way for the community (you!) to contribute more easily to developing new camera controls.

Send data with @speckle/objectsender

We’re excited to release @speckle/objectsender, a new library for sending data to a Speckle server instance. It’s simply the inverse of the objectloader – and maybe an early JS/TS SDK?

In use:

import { send, Base } from '@speckle/objectsender'

const testObject = new Base({
  prop: value, 
  '@detachedValue': new Base({...}),
  '@detachedArray': [...Array(100).fill(0).map( _ => new Base({...}))],
  '@(10)chunkedArr': [...Array(100).fill(0)]
})

const { hash } = await send(testObject, { serverUrl, projectId, token }) 

More improvements around the Viewer

  • The camera position no longer changes when you add a new model. This way you don’t lose context.
  • Added outlines to objects when you hover an element in the Scene Explorer
  • More user friendly design when attaching an image to a comment
  • We now output the full property strings under filters – which can be messy to look at but is much more accurate
  • More user friendly property names in filters for Revit data
  • Improved usability of the hide/isolate buttons in the Selection Info panel

And…

  • Lots of general polish around the web app. If you think things look a bit cleaner than usual but you can’t really put your finger on what it is – this is why.
12 Likes

WASD support :heart_eyes: cannot wait!

4 Likes

The object sender is :fire:

4 Likes