Mostly, I only need to finesse a currently makeshift UI/UX. There are a few options that I have built in that should be optional.
When moving from Alpha to Beta I will attempt to adopt the Speckle UI properly but may lean on The Specklersā¢ for help with that.
Call for contributions
In the meantime, Iām looking to source NWDs for test conversions to a collaborative stream. By test, I mean also looking for help with the review of the conversions.
If you can share anything, you would then be happy (and permitted) to:
QA review
view online
try downloading to Blender/Rhino/Notion etc.
I propose to assemble a closed stream and add all who offer submission as collaborators. This is my best attempt at reaching wide for material that is ok to be shared. I have plenty of my clientsā material but canāt really share them.
I hope this is of interest to folks.
I share a lot on Twitter but would like to keep this between us for now.
Donāt fret, my Windows are activated - itās a BootCamp thing.
Nothing specific, and can be as simple or as tricky as you like.
As a caveat, solids convert but not linework geometry; embedded CAD will be discarded and not added as cruft. I have stress-tested the conversions a bunch (Big models === Slow) and sadly still experience occasional inexplicable crashes ĀÆ\(ć)/ĀÆ. Because Navis models are always from someplace else, sometimes odd quirks arise that need ironing out.
Essentially, If you share an example file(s), Iāll run a few different conversions from the options UI Iām still working on:
full conversion (again, big can be a pain)
by layers,
by selection sets
by search sets,
colour overrides (temporary or permanent),
move-to-zero or real location.
All these are working just need to convert from flags embedded in code to sensible UI options.
Iāll make a branch per contribution and probably sub-branches to that which describe what selection or transformation options have been applied. Using all the Speckle commenting goodness.
I have another thread where I have been thinking in public about what the object model should be and have settled on something I think works well (based only on my own needs for data QA really)
If you have other ideas - Iām also gathering those and super keen to receive them too.
DM me to share links here or jonathon @ stardotbmp . com
Count me in with the testing! im based in Chile so i can provide nwds federated from some of the most used softwares around here. have been thinking for a while on how speckle could help with AWP in some mining projects im part of.
Thanks to @Ricardo_Zepedaās contribution, I have found a bunch of places where the conversion is broken. Obviously, that sucks in some ways but is AWESOME in others.
The nature of the suckage is problematic:
After quite a lot of digging (some of it in unofficial sources), most errors appear to stem from ADSKās own .NET wrappers around its legacy COM interface to the underlying code.
My conjecture
It seems it is suffering from pre-emptive garbage collection. This may explain why all the errors are associated with memory access. If an object has been garbage collected, it is logical that accessing its properties will no longer be possibleā¦
When the conversion routines were simple loops, this wasnāt occurring as garbage collection while debugging is less vigorous/strict to allow for stack traces to work etc. When trying to improve efficiency with multithreading, it becomes a bigger issue - or worse, occurring in Release, not Debug, with no other changes.
Solution (attempt 1)
I am porting the conversion to use more and more of the crusty old COM API Ā¹. Handling the GC better and using more primitive types. This is with 2 objectives in mind:
Yeah, you ARE right; itās one last roll of the dice.
Thing is, the APIs are semi able but unstable, some work and some donāt. Those that donāt fail hard so itās not worth trying. Some that do sometimes (property reads for example) are tantalisingly close to making it worth trying and for the times that the call fails falling back to a main thread read.*
As you might know, iterating over 1000s of nested objects is slow. Multi-threading massively helps of course.
If this doesnāt work (the example loop is kinda dumb) Iāll abandon it for the alpha and open the hacky code to yāall and the internet to help.
For now Iām bitten by the āI will make it work, I mustā bug.