LiveComponents vs. DynamicComponents

@DanRathbun the concept look nice ,tidy.
The only think that troubles me is if the extentions would work on the same ruby rules. And would be possible to use them on LC.

Hey Everyone

There’s not a huge difference between the basic notions behind Dynamic Components and Live Components. We simply wanted to offer a platform for making configurable objects to aid in design workflows.

The big differences are under the hood. Live Components were developed to resolve some key limitations with Dynamic Components. These are things like: easier and more approachable authoring; protecting author’s intellectual property; more efficient modeling capabilities, more efficient files from a consumer perspective; better unit support… We believe that these differences will allow us to better serve the community well into the future.

As far as conversion utilities is concerned, we are not planning on having a way to convert Dynamic Components into Live Components. There are too many subtleties in the way spreadsheet formulas are used within Dynamic Components to make them work seamlessly as Live Components. In many conversion situations, we expect that there would be a “fix it” step needed to correct the logic. Another thing is that geometry is handled differently for Live Components. (Dynamic Components only support scaling/stretching and visibility.) As a result there will be some key advantages with modeling geometry in Live Components which are worth leveraging from the beginning. I realize that might seem like a painful decision but it will usually be better in the long run to author a Live Component from scratch. It’s also better for us from a development perspective - we can focus on building new features to support Live Components instead of spending time playing whack-a-mole on conversion problems.

6 Likes

Hi @Bryceosaurus

thanks for sharing this Information. It sounds promising.

I have two questions:

  1. How are live components stored: Can I assume that a live component is in the end as well stored as a .skp file, which I can import as a component into an existing Sketchup model? Or do I always have to generate first a skp file from a live component before it can be used in a Sketchup model?

  2. Efficient files: Will it be possible to instruct the live component to generate the skp file with a reduced poly count? Assume I model an inflatable chair which I offer from a mini size of 50cm up to 2m in width.
    Then the model generated with 50cm size should have far less quads than the big chair. Will this be possible?

Live Components are essentially components and can be transported in the same ways. Or to put in another way the geometry for a Live Component is effectively cached as a component inside your files. When dowloading from 3DW before configuring, there is a “static” version of the geometry available as a component. Once inside sketchUp, Live components can be copied or saved as just like normal components. You’ll even be able to email a configured live component as a file attachment. It’s only when you go to reconfigure that the contents are changed.

This is definitely possible. Much like how you make choices that affect the polygon count while modeling manually, you can make the same choices when authoring Live Components. Parameters can be linked in various ways to control the LOD of model assets. For example you could have sliders that affect something like the number circle sides for an extruded pipe. Or you could set up enums like: High poly & Low poly which then affect your model assets. I’ll see if we can publish some examples with LOD controls soon.

2 Likes

@Bryceosaurus
Looking forward to seeing the LOD working.

Another question came up:

Reducing Sketchup model file size with Live Components:
I assume that a live component uses much more space than the generated component. Will it be possible to import a generated (leightweight) component into a model, but keep the link to the (heavier) live component? So that the live component is stored outside the main model, but I can still change the configuration of the generated component from within the main model?

1 Like

Do you still have to have an internet connection to (re)configure, once you inserted a static version from your local component library?

I don’t think a live component takes up any more space than any other component. The “liveness” is stored in the cloud and SketchUp file contains normal geometry and an ID.

1 Like

Yes, that is the case, if the master LC is in the cloud and the generated component is downloaded. But I still assume or hope :wink: that the master LC file (containing the liveness) can also be stored locally and imported to a sketchup model in the future.

Yes you will need an internet connection to reconfigure even if you already have the .skp file stored locally.

this is serious disadvantage, as I can foresee connection issues and speed being factors

I believe such should be the case for 2020 and prior versions but the code should be hard wired to the the subscription version

4 Likes

Try it out in SUpro 2021. We know we have issues with the time it takes to establish a connection. It currently takes about 8ish seconds to connect to “an engine”. That might be more or less depending on where you are and your connection. We know that kind of a delay is not acceptable long term so we’re working on it. However once the connection is established things are pretty snappy and not to far off from similar operations in SketchUp.

I just tried it. I dropped the network connection while having the LC configuration window open. In such a case you still can change the configuation parameters, but the change is not applied to the object If then you enable the connection again, it will not help. You have to close the configuration window and reopen it. This could be improved by showing a warning/message for no / slow connection.

But other than that it worked fine for me. :slight_smile:

1 Like

Right now the “LC engine” is a work in progress (beta stage.) It really does help development that it runs on a cloud server and changes or new features can be “dropped” at any time without rigmarole of formal releases and announcements, requiring users to download and install an extension, etc.

It also enables use in the SketchUp Web editions.

3 Likes

That’s more or less how it is.

An LC is stored as a regular skp/component, but can be ‘revived’. That does require an internet connection though.

That’s right. We are constantly improving the engine and serverside aspects. For some aspects, you might have to wait for SketchUp to update and use those new capabilities, though. But this might be more frequent than SketchUp releases, as it uses served web code. A bit like the 3D Warehouse embed in SketchUp.

3 Likes

I have a two part question!

  1. I really like the way you can nest and explode dynamic components. For our furniture collection we have dynamic doors (with style, size and handle options) and dynamic carcasses (which have style options, plinth options etc, and which in turn contain dynamic shelves which you can click into to access hanging rails, lighting or glass shelf options). The doors and carcasses are independent of each other, but we’ve also combined them to make dynamic cabinets that snap to certain standard dimensions when scaled. If you explode that parent component you are back with the door and carcass, and are free to scale them or move them around independently again (eg move the doors from one carcass and put them on another). We also combine the parent cabinets into grandparent (!) combinations for a media unit or run of wardrobes for example. Again, you can explode them to work with the cabinets more freely, and explode them again to get back to the independent doors and carcasses. It means you can put a standard design together quickly, but still be free to make changes to that standard design when working with an individual client. I’m hoping that when we get to author our own live components we might be able design them in a way that would allow them to be nested and exploded in a similar way?

  2. A big downside of our dynamic component library is that the overall collection is not connected. So if, for example, we introduce a new handle or we chose a different board thickness for all our carcasses, we have to manually change all the units in the entire library. If, as above, we also have amalgamations of units in different pre-set configurations - the task becomes impractical … which is a shame because using amalgamations of units is otherwise a really efficient way of putting together a design. (The original intention was to solve this by containing the whole collection in a simply SketchUp file - but the collection is now too large to make that possible.)
    In the development of Live Components, will it be possible to have connected common elements across a library of components? So that if we drop a handle style for example - it could be reflected across every instance in every model? I can’t think how that could be achieved - but it would be REALLY useful!

3 Likes

Make your words my words.
I go through the same frustrations with my dynamic libraries, but I still see them as a great asset of modeling and agility in projects.

1 Like

A very complicated situation with dynamic components is the working time and calculation in more complex components … this time can be very long.
Is there any possibility that this calculation time will be reduced with live components?

This is because Dynamic Component is a ruby extension.

Trimble never consider to integrate DC in Sketchup. It would be much faster.

I built software which seamlessly made dynamic components configurable online in a web browser. A complete like-for-like transformation, including all the component options. Our web-based engine supported all of the spreadsheet formulas and their subtleties. Whatever you could configure in Sketch-up you could configure in our web-app too.

I’m not a developer, but I thought I’d just mention the above, incase it has any bearing on what is possible with regards to converting dynamic components to Live components (I thought about adding a link here to a demo, but I’m not sure what the rules etiquette is etc) ?

I trust Sketchup’s decision for this overhaul of dynamic components is the right one;

but there is still nevertheless loads of people who would benefit from being able to convert their DCs to LCs

And it may fall on third party developers such as my self and others to help make this happen.