Crash (Multi-User Rhino) 1.4.2-beta has been released!

Hello all,

We’re very excited to release the latest version of Crash! Available for download now!

Crash is an open source plugin that enables you to make your Rhino models multi-user! Start collaborative models with your colleagues or classmates across the office or across the globe.

After 8 months of hard work the team has finalised the latest version of Crash. It has been an incredible amount of work and involved rewriting most of Crash. But the final product we hope you’ll agree has been worth the wait!

Disclaimer

Crash is a work in progress project completed in the spare time of generous contributors. If you find bugs we’re very motivated to solve them and bring you a rocksolid product. Please create a thread in the Multi-User channel or add it to GitHub (see below!).

Getting Started

:woman_technologist: GitHub Repos

:books: Docs

:whale: Crash.Server Docker Container


What does Crash Support

Supports

  • Rhino 7/8 Win
  • :new: Rhino 8 Mac
  • net48 & :new: net7.0

Features

  • Sync any Geometry item across Models
  • View User Cameras
  • Follow User Cameras
  • Cloud storage
  • No save required modelling
  • :new: Crash Plugin API - Example

Known Issues
  • Grip point modifications are not supported yet
  • Maximum object size is 1MB, objects over that will not send currently. But you should be informed. This can be increased if you setup yourself!

Full Changelog

:heavy_plus_sign: Added

  • Relase Selected → Users can now release individual changes
  • Undo/Redo Support
  • Complex Operation support, e.g. Boolean Union
  • Better Join Shared Model UI
  • Better User UI
  • Headless scripting support
  • Fully Mac Compatible (including net 7.0)
  • Full Rhino 8 Support
  • Native DarkMode support for Rhino 8

:toolbox: Fixed

  • Full Undo/Redo Support, many fewer bugs
  • Complex Operation support, e.g. Boolean Union
  • Handled connection failures much more gracefully
  • Fixed a lot of ironic Crashes

:currency_exchange: Changed

  • Removed StartSharedModel as it was a bad solution
  • Crash is almost entirely async
  • Crash uses an entirely immutable database now. Modifications are now change based and more efficient
15 Likes

Amazing updates! @csykes and the team!

Is there a cap on user count currently?

I’m not trying to go crazy initially but would like to test with 2 of my colleagues.

Thanks, I’m looking forward to testing the latest version!

1 Like

Hey @michaelvollrath!

There is no hard cap in the source code. Theoretically it’s all down to server hosting, hardware etc.

I’ve tested an azure model with 6 people and that worked pretty well! In Unit tests I’ve managed 1000 connections without any drops which is an exciting prospect.

Please give it a go, try gentle, try crazy and let me know how it goes! I’ve put guardrails where I can to inform you when there’s a failure (server drop, blips, trying to send geometry that’s oversized etc). There’s a few things locally that aren’t supported yet (grips, blocks, linestyles, layers etc). which should be nicely documented in the docs above. Most of the last 8 months was Architecture work. Adding in these items should be much more feasible now :grinning: !

1 Like

Terrifying to think of 1000 designers working in the same project :joy: a building may never recover. Cross disciplinary teams though for sure! 4 here, 20 there, 1 there, etc… I love the idea.

Awesome, will do. I was thinking about going the Azure route to start. Need to look at the docs and research more.

EDIT: does undo work after you’ve released changes already?

Thanks, I’ll report back once I get into it more!

1 Like

r.e the 1000 users, Crash has a nice “Follow” feature so in theory 1 person could be teaching, and 999 watching :wink: !

Undo/Redo does the inverse of what ever action happened before (Quite literally, Crash has some very nice event wrapping, and changes are handled immutably). Undo will put an object back where it was (But I don’t think it re-obtains it currently, so it will still be released for now)

2 Likes

That’s actually quite interesting. There’s screen sharing of course but I love the idea of an instructor “alright follow me here and I want each of you to create a dodecahedron following the steps I show you and one other primitive of your choosing nearby.”

Or “everyone, to finish of your design, create a light on the porch and render material for your small shed, we will then travel to each students shed and let them present their shed design”

Wow! I don’t think people realize how awesome that actually is haha nice!

1 Like

Of course, and for so many things its really handy. Most of all you don’t need a Rhino license. But if you’ve got it, it should be a much nicer, latency free space to collaborate in.

That was my hope! It wasn’t actually my idea, but I really like it, you can also see the other users’ cameras, which is really cool if you were to present something, you can see what everyone else is focused on.

I would love to see this, it feels like a really cool and interactive way to work together!

1 Like

Hello! I have been waiting for something like this since earlier stages of rhino.
I would like to try it out, and I have been reading about the way of using it but it is not that clear to me. I managed to install the plug in and also to download the crash.server, but it is not running in my PC, saying that it can’t.

I would appreciate some help on this,

Best regards
Nestor Gomez

Hi @csykes,

While Crash appears to be working within Rhino itself, I cannot start a server via the executable method in the packaged .zip on github.

Here’s all I see when I run the .exe:

Same message when ran as admin.

I see also an option to use Azure.

For those (likely most of us) that would like to use Crash.

Could you make a “create a crash server for dummies” guide :wink:

I followed the documentation and Azure video linked in the documentation but still having an issue creating a server for my colleagues to join with me.

Thanks so much for the help, the potential here is huge!

1 Like

Very odd, in the coming weeks I’ll try to;

  • Create some how-to guides
  • Fix that strange error

Sorry for the delay with all this, but I’ve been quite busy lately :slight_smile:

Absolutely no apology needed! Really appreciate your work on this. I’m itching to try it!

1 Like

Okay step # 1 is done.
The Release build should work. I’m not sure why it had any issues but I’ve updated some build scripts so it shouldn’t happen again.

I will start on more tutorial videos soon :slight_smile:

1 Like

Thank you!! :pray: I’ll test and report back

Hi @CallumSykes ,

Thank you for the update! I got a local server up and running via the Crash.Server.exe method!

I see actions in Rhino being written to the crash server terminal window successfully.

Will test with colleagues and report back.

Much appreciated!

1 Like

If you navigate to the url you hosted the server at you’ll get a little welcome page that has links on the bottom left to other debugging pages as well :blush:

1 Like

@CallumSykes I don’t see that while using localhost, I’m assuming I need a proper server address.

I don’t know much of anything about web hosting, azure, aws, etc.

But I’m assuming that I need to create server host address via one of those services and have Crash point to that if I want to actually use the Crash.Server with others collaboratively correct?

This looks incredible. Great work! I’ve been thinking about geometry syncing and stream to AR/VR devices (like the vision pro) and this seems like it might be a great approach. Have you looked at syncing with the iRhino viewer app at all?

You will need to navigate to http://localhost:8080 not http://0.0.0.0:8080.
Oh also the debug urls will ONLY show on a Debug build, so you might actually need to run a local debug to see them. You should still see the welcome page though.

1 Like

Hey @cameronbehning it depends exactly what you want to stream and how you want to interact.
I worked on this project at a hackathon which streams the rhino viewport pixel for pixel and allows returned clicks and commands. Rhino Anywhere | Food4Rhino. (I do not spend time on this project however due to my focus on Crash.)

I have not worked on adding Crash to iRhino and I won’t make any promises I can’t guarantee :wink:.

– cs

I’m looking for a good way to stream the 3d data from Rhino to the Vision Pro so you can place a model, view it in 3d/ walk around it, all while staying up to date with the modeling happening in Rhino. So pixel for Pixel streaming wouldn’t be the solution. Based on the videos I’m seeing, you are streaming geometry, not just pixels, which is the first step of my problem. If I were to work on a branch and make a pull request, is that something you would be opening to integrating?

Also, where does this stand with grasshopper and collaboration?