Blender > Speckle > Blender - General

I start my series of Blender Transfer experience and findings.
Maybe some of these aren’t not already on the radar, maybe some may be low hanging fruits that could be implemented in the future, to make everything more lossless.
So I will start with …

General :

  1. UUIDs (added to Object Names)
    When I download my Blender Upload back into Blender, I see that Speckle added some pretty long UUID (?) to the Objects names.
    Not sure, if I would upload that file again would these names get longer and longer by adding new UUIDs over time ?
    Nevertheless, inside Blender these UUID name additions are a bit hindering. E.g. I noticed that when I wanted to switch through my Cameras and could not reach the Camera Symbol to switch active Camera. Either I have to expand the Outliner width to half of my screen or to expand all Camera Object’s hierarchy to make the Camera Symbols appear more on the left side of the tree.
    (BTW, e.g. Materials don’t get/need UUIDs added)

My question now is if it would be possible that the Connector does not add these UUIDs or deletes these while downloading the data into Blender ?

  1. Empties
    (vs Collections)
    Speckle does ignore Empties.
    I am pretty aware that Empties are PITA to misuse for simple grouping and Collections are the way to go to group your Hierarchies.
    But there are older, pre-Collection Files that had to be grouped by Empties and still today, unfortunately nearly each 3D or CAD to import into Blender brings Empties into Blender for grouping.
    The Problem is, when Speckle ignores them, also any Hierarchy is lost and you will get an endless list of loose Objects.
    This does not really help in Speckle Viewer, nor when downloading the data back into an App.
    And I wonder, what happens with Empties which weren’t misused as simple Groups but as “Locators” with Transformations applied to parent child Objects. (AFAIR the Transformations like Scales do get applied, before eliminating the Empties)

My question now is, when uploading such Blend Files, could the Connector translate the Empties to Collections, by keeping the Naming ?
So that Speckle Viewer and Downloads could profit from a kept Object Hierarchy. (And Blender downloads from a cleaned up and re-standardized Blend File)

  1. Lights
    Looks like Light Objects, (other than Cameras), are also omitted (?) Maybe because there is no (not yet ?) use for them in Speckle Viewer.
    Not sure if that makes any sense but I would welcome if Speckle would upload/hide/keep also the Light data (e.g. Sun + Sky Texture) in the Data Base, and dig it out for a potential download of Blender … or even translate it to use for other Apps download (?)

Hey @zoomer,

The reason the object names include a unique ID is that in Blender’s scene outliner, each object needs to have a unique name (which is different from some other applications). I appreciate your suggestion, and I’ll definitely add it to our backlog. We’ll look into finding a more user-friendly solution for this! Thank you for your input!

This is a good suggestion. I’ll look into what we can do.

As you guessed, we don’t support it because there is no use for it (yet) in our Viewer. Once we have the use case in place, we can look into adding support for lights but it would be a cross connector effort as some other connectors also have light objects.

2 Likes

Thank you very much @gokermu !

As for the added UUIDs,
I would have thought that were meant for Speckle …
So something like when I edit the file in Blender and sent it up again Connector would load up edited parts with new UID to Speckle, by skipping the rest, then create a new file version on the Server, …
or that I download a newer Version on top of my old one in Blender and the Connector would add only new parts or exchanging objects that changed, or such …
I might be completely wrong and misunderstand everything though :slight_smile:

But when UIDs are just for Blender’s inability to use same name again …
(from a user perspective Blender “can” do so. Just like Modo (or C4D ?), Blender will just automatically add a *001 to the name to make it unique. E.g. Vectorworks is much more restrictive there. It can’t add a number to make names unique - instead it will just moan that you need to assign a different name as it is already assigned. And this rigidity even happens/expands over different Object Types. There were even cases where VW did not noticed and warned that the name is already in use. Which ended in Objects you can’t edit or see or delete anymore, until you found and temporarily renamed its counterpart …)

For a moment I thought unique Names are not needed for the Data Containers itself, just for the (usually hidden) object content.
But that was wrong - of course also each Data Container has an individual Name - already made unique at the time I initially imported that (non unique named) CAD Geometry into Blender.

But for a Blender Upload to Speckle, all Names are already unique and would work for a Download back to Blender - without the need to add a UID.
If I get that right that should also still work for a following exchange with another App and back to Modo (?)
Just when I e.g. upload a Bricscad project, and down to Blender again, Names need to be individualized for Blender.
(Bricscad uses same names. But all Objects have CUIDs in Properties anyway, just not visible for an App like Blender)

But wouldn’t do Blender that Suffix adding by itself, when Speckle Connector pumps in same named objects ?
(As it does it when importing or when I create something and try to assign a name already in use)

I meant that even in a more general way.
So that Connectors load any kind of Project information and data into their data base in case it is needed again … so that a download to the same App would be 100% lossles. … Although it may be very likely that, I exaggerate, a Grasshpper/QGIS/Tekla Connector could not make much use of Eevee’s sample number or Blender Camera Focal Lengths Settings.
But it is all kept in database, just in case, you know ,…

This is likely a bit naive and unrealistic to import and keep every data. But maybe there is a golden way between ALL data vs least common multiple of all Apps …
Regarding more standardization and PBR, like even IFC now starts supporting Materials and Textures, … would be nice if at one point all parties see exactly the same Digital Twin in Speckle Viewer and in their local Apps.

Sun Light in Viewer …

I might be wrong and not sure if that is a general Speckle Viewer thing or a Blender Upload thing (as Blender is my only Connector)

But for me it looks like Sun does not work like usual Azimuth and Elevation angles promise. (Angle from North and Angle from Horizon) For me it looks like …

  • Elevation Slider just rotates Sun around Z Axis (From 0-1 = North to South)
  • Azimuth Slider just rotates the Sun around Y Axis (From 0-1 = West to East

I tumbled over this as I wanted to set a sunset setting, so started with a low elevation of course and wondered why Sun comes always from north and why I was never able to setup the desired sun position so far.

OK, now, since I got how it works, I can set any sun position.
Sun can even come from North if you wish, for Model North Deviation or for artistic reasons.
But in this case I think the Slider Naming is misleading.
in Plan View it is more a Sun-from : Top - Bottom (Elevation) and a Left - Right (Azimuth) slider.

TL;DR;
Speckle Sun this way is fully (more than physically) functional,
just Slider Names a bit misleading.