How to work in parallel on the same model?

How would you setup Rhino model to allow for two or more designers to work at the same time, that is having fully featured Rhino interface and saving changes and updating the same file in parallel?

If we take this literally, I don’t think any CAD software can do it. For sure Rhino can’t.

On the other hand, imagine two designers working at a drawing table on the same piece of vellum (or whatever the drawing is on): what would “working at the same time” really mean in detail (Assuming the drawing is big enough that it’s physically possible for two or more people to stand at the drawing surface)?

I will “literally” refuse to believe that. Not that I know of one (recent Unreal Engine team mode? but that hardly constitutes CAD), but I will simply supress this. Wasn’t CAD invented by PhD Cambridge students50 years ago? What does it take to invent basic synchronization mechanism cmon?

1 Like

there are sure applications which allow simultaneous editing. i dont know of any cad but just that the info is out there even it may be a dull comparison, google docs allows such. you can see other people editing while you keep working on it either. why not also on a cad file which is huge, large, complex and did i say huge? with a lot of work involved so that splitting efforts directly in one file could make a lot of sense.

i could envision such also with being able to choose whether you block an object from being editable by others at the same time, or just model on the same object together. obviously slight restrictions might have to play a role such as point editing the exact same point of a curve or solid point of an object, which in real life might not occur ever anyway, i would generally go by “first come first serve”.


How complex are we talking about? RhinoCommon level? C++ modeling kernel level? I would love to hear an answer in reference to Rhino’s architecture.

Hi Daniel,
How do you decide what to work on and how do you keep your coworker from getting in your way while you model, what would you do if you both use the same command at the same time?

I think you might want to try using worksessions. This way you will both have a functioning rhino and won’t get in each others way.
You could copy the file
Let your coworker open another versioned copy.
Have a compiled version of both your files.
These can all be opened/attached in the ws manager and as you or your coworker model the saves will update in your workesessions. You can hide the compiled file and then update that after you both decide on the changes and save that as your master.

that didn’t work in our previous team, as we want to have one single base model AND work on it together at the same time. In the Worksession workflow still only one person can edit the existing model, you can ADD new things in a separate file and link/worksession it, but that didn’t work at all (for us [for noone really]).

You don’t “decide” what to work on… you just open the file, make your changes, save it. If there is a conflict on some object, highlight it go to your colleague and talk it through, decide which one you want to merge. You can even lock it like Revit does it, but I’d prefer personally to have access to the whole thing and decide any conflicts when saving.

I would REALLY appreciate a technical breakdown of what it would entail to implement this feature.


I see that you are starting to appreciate some of the issues. Your question was a hot topic 30-40 years ago in the automotive and aircraft design industries and more recently (but still a while ago) in the computer programming field. I presume it’s been satisfactorily dealt with in CAD systems like Catia and NX. Programmers came up with version control like git. Catia and NX cost a whole lot more than $895. git is free.

Is there room for Rhino to get a bit better and keep their price point? Perhaps - if they want to.

How about some large organization Catia and NX users chiming in with a description of how it’s handled by those systems? And a short list of problems that any successful system needs to address.

1 Like

huh that’s a good point, here I found a demo of this Catia’s “Feature level collaboration” that I think you were referring to:

You can use worksessions to work on a large project. Essentially split the project up in files and then reference them back together. Then updates saved and can be updated on other computers.

There is no object level locking like you might get in products that run on part assbly structures.

Thank you for bringing this up, but could you please still add this object-level locking as a feature request? You have already built so many amazing functions into Rhino 7, but as I mentioned above worksessioning currently really is not enough.

Hi Daniel -

Did you look at that video? Nowhere is there any mention of working on the same file at the same time.

I worked 15+ years in a large organization on NX (granted, never the latest and greatest version) and there never was a “work on the same part simultaneously” feature. You checked out a part in Teamcenter Engineering and, when done with it, checked it back in.

Perhaps you could go into details about what didn’t work for you?

1 Like

Ooops, that was a bad example indeed. You know what I mean though if you ever worked with Revit, Google Docs or had siblings. It doesn’t need to be the same file, but the same model - it could be master-client mechanism or anything that won’t lock, but let’s you collaborate directly. Hmm… let me find a recent example from unreal engine, which used web sockets, which even allowed you to collaborate over the internet.

If you could maybe skip to around the 23rd minute…

It’s not the best example neither… but I am sure that you must know about it more than I do and you must have seen some mechanics of concurrent access like this before. Tools you have built already are absolutely amazing, so from my user experience side I think it’s only worth noting that worksessions require you to plan and split tasks ahead of time. This doesn’t allow you to dynamically react to changes.

As I explained above two people cannot edit exisitng model, they can only add to it with worksession. They canno react to other people’s changes. It requires MUCH more overhead thatn just… you know having a one model. I would really like to be on the same page about it and I hope that you can understand that this would be worthwhile to implement… and hopefully tha you could also shed some light on how it could work in Rhino’s “architecture”.

This is a blessing for programming, I wish there was something similar for CAD. It seems reasonable at least with Grasshopper.

1 Like

It would be nice… but not necessary for us, as Rhino is mostly used in those early design stages. I assume checking in and out is necessary to integrate it with PDM PLM ERP CRM ERGRTGERGER… all those tools, but for us… you know it would be nice, but NOT necessary.

Being able to work on one model at the same time - that would be “necesary” to boost our productivity a lot.

Yep, but git is much more than just collaboration. There was a thread about it before. Here I’m only asking about concurrent access.

Onshape has branching and merging that (to my limited knowledge) functions like git.

1 Like

It is actually quite common in engineering CAD I found, but even a light-weight version of it Rhino would be already immensely helpful.

So! Now we are on Rhino 8, hope this thread has made some progress. Object level locking sounds amazing!