ESTIMATED READ: 10 MIN.

ShapeDiver & Rhino Compute Explained!

August 22nd, 2023 by ShapeDiver

Explore the differences between using Rhino Compute and ShapeDiver for your online applications.

-

Introduction

As 3D modeling and design become increasingly complex, many designers and engineers turn to cloud-based solutions to streamline their workflows and collaborate more effectively with colleagues, clients, and other stakeholders.

Such modern workflows are increasingly adopting parametric models, with Rhino and Grasshopper being particularly popular choices. These models embed logic directly into the CAD design, making it accessible via user-friendly parameters. When these models are shared online, it opens up fresh collaboration opportunities, speeding up design iterations and decision-making processes.

Two popular options for solving geometric operations remotely using Rhino and Grasshopper in the cloud are Rhino Compute and ShapeDiver. Many teams and companies relying on parametric design come to wonder which of these solutions is right for them, considering various factors such as costs, performance, security, and various key aspects they should consider during the implementation of their applications.

This blog article explores the differences between relying on Rhino Compute and ShapeDiver for your applications and help you determine which solution best fits your needs. We attempt here to give an exhaustive but high-level overview of the two solutions; in case you’d like to get into more technical details, we have prepared a separate article in our help center.

Whether you are a startup looking to create online configurators based on your Grasshopper files, or a company looking to share proprietary Grasshopper plugins and scripts with whole teams of designers, architects, and engineers, understanding the differences between these two approaches is essential to making informed decisions about your cloud-based workflow.

What is Rhino Compute?

Rhino Compute is a solution powered by McNeel’s Rhino.Inside technology, which essentially allows you to run Rhino and Grasshopper in headless mode, in other words, without a graphical user interface. It provides an API for geometry calculations using Rhino’s geometry library instead of launching a desktop application. This makes Rhino usable as a remote computation endpoint on a web server. 

Rhino Compute can be configured to run locally for testing and development purposes. However, as a project eventually becomes more mature, users may need to deploy Rhino Compute in a production environment, for example, using a cloud service provider (AWS, Azure, Google Cloud, etc.).

This also means that users are responsible for managing their own cyber security measures, including setting up firewalls, securing data transfers and storage, and protecting their cloud resources against unauthorized access. While Rhino Compute provides guidance and resources for securing cloud infrastructure, the responsibility ultimately falls on the user to ensure their setup is secure. We will expand in a section below on some details of what is needed within such a setup.

What is ShapeDiver?

ShapeDiver, on the other hand, is a fully managed and secure cloud-based platform specifically designed for hosting and sharing parametric 3D models. With this solution, the infrastructure is completely taken care of, with not only a set of secure web servers (AWS), but also a load balancing mechanism and caching system: in other words, a powerful, secure backend ready for productive use. 

Additionally, ShapeDiver provides a range of features such as an online platform for managing your Grasshopper library, a WebGL viewer, a set of well-documented APIs, and built-in security features, including SSL encryption, data backup and recovery, and access controls for managing user permissions.

Last, ShapeDiver also regularly updates its security protocols to ensure its platform remains secure against the latest threats.

Apples & Oranges: What are we comparing exactly?

As introduced in the above paragraphs, Rhino Compute and ShapeDiver are not equivalent and live in very different contexts: Rhino Compute is a technology, while ShapeDiver is a SaaS (Software as a Service). In some cases, Rhino Compute and ShapeDiver both provide an adequate way to implement cloud applications based on parametric design, but they are not really comparable at a fundamental level.

As a consequence, the comparisons we make in the following section of this article should be understood in the context of building an application. For each key aspect of a professional cloud application, we describe the following:

- On the one hand, which technical and practical challenges one must solve when using Rhino Compute to build a cloud application.

- On the other hand, in which way many of those challenges are already solved in the context of ShapeDiver, as part of the services included in the ShapeDiver SaaS platform.

Comparison Through 5 Common Use Cases

Let's explore some scenarios where Grasshopper definitions are solved in the cloud. For each, we'll outline the key steps and considerations with Rhino Compute and see how they stack up against ShapeDiver's built-in features.

Case 1: Calling a single Rhino/Grasshopper functionality as part of a wider web application.

Remote solving a geometrical operation (or even a full Grasshopper definition) might not be the core of your project but rather a small link in a broader web application involving other technologies.

If such an application is meant to be used internally by your team, and if it is not meant for intensive usage (resulting in a few remote calls to Rhino/Grasshopper per day), the required infrastructure is limited. Still, there are a few things to consider, as we cover in the comparison table below: at the very minimum, your team will need to know how to set up and maintain a web server and provide a minimal level of security measures. Depending on the usage, some load balancing to ensure the performance of the setup might be needed as well.

Case 2: Self-contained Model-as-a-Service

Your targeted application might entirely rely on the expertise of your parametric design team and consist of a single Grasshopper file: a set of inputs (which might include file inputs) are processed and result in visualized geometry and possibly file exports as well, such as geometry to be further used in the team, technical drawings or presentation PDFs.

This is essentially the basic use case for ShapeDiver: upload a Grasshopper file, including some of the ShapeDiver plugin components, and get an autonomous 3d web application on the ShapeDiver platform, which you can share with your team and beyond in a secure manner.

To set this use case up with Rhino Compute, on top of the points mentioned for case 1 above, a 3d viewer to display results is necessary. Additionally, a secure infrastructure to control who can access the application and eventually export files from it will need to be in place.

Case 3: Building Online Product Configurators

There is a wide range of applications for product configurators, from internal tools with limited audiences to full-blown marketplaces. We distinguish between the 3 following categories:

3.1 Technical configurators, which are only used internally by a limited number of people in your team.

3.2 Public-facing configurator (e-Commerce, optioneering tool) based on one or a few Grasshopper definitions.

3.3 Marketplace including an ever-growing number of configurators and, therefore, new Grasshopper definitions over time.

The first category of configurators (3.1) is similar to case 2 above. However, with category 3.2, questions of availability and performance arise when many users need to access the application simultaneously. Your web server will likely need to be interfaced through a load-balancing mechanism and possibly a caching layer. In case 3.3, an entirely new set of issues will arise from the need to frequently update the set of parametric definitions as well as regularly upload and include new ones to the online system: such a system will involve an administration dashboard for the content creators in the team, similar to the ShapeDiver dashboard.

Case 4: Sharing Grasshopper Applications

The goal of a cloud application based on Grasshopper is not always the development of a web application. Storing and managing parametric definitions online is a good way to share functionalities with a team of architects, engineers, and designers who do not have any Grasshopper knowledge or a limited one. Such a setup helps eliminate insecure and cumbersome file exchanges in favor of a centralized system.

Grasshopper now includes the Hops component, which allows triggering computations of remote definitions, which can, for example, be stored in the cloud. One question (introduced with case 3.3 above) remains: how do the Grasshopper experts in your team securely and conveniently deploy, manage and update the definitions which are accessed throughout the team? Furthermore, how to control which members of the team have access to which tools, potentially including external partners and clients for periods of time?

Finally, how do team leads and managers track the usage of the tools in place in order to make further decisions? Depending on the usage and security requirements of the company, permission systems and tracking processes might need to be developed along with the core centralized Rhino Compute server storing and granting access to the Grasshopper definitions.

Case 5: Building a software service on top of Grasshopper definitions

Building a public online service that includes letting users upload, manage, update, and access their own Grasshopper files, is, of course, always possible using Rhino Compute. It involves all of the points mentioned in the cases above in the most critical way possible if the goal is to scale the service to many users and offer features up to industry standards. In such cases, the Rhino Compute interface ends up being a small part of a much larger infrastructure, answering questions of security, scalability, and performance.

Infrastructure-Related Requirements

Requirements Relevant for... Important questions to consider... Rhino Compute ShapeDiver
Setting up a web serverAll cases.- Where does Rhino/Grasshopper run? - How many instances do you need? - What are the costs of running those servers? - McNeel provides guides Cost factors: - Depends on the number of instances and costs of the chosen cloud provider, e.g., AWS EC2, Azure, Google Cloud, etc.- Handled as part of any subscription Cost factors: - From €49/month
Licensing Rhino instancesAll cases.- How much will running Rhino in the cloud for the application cost?- Core hour billing system (USD 72 per CPU core per 30 days)- Handled as part of any subscription Cost factors: - From €49/month
Prevent service interruptionsAll cases. Critical for (2) to (5).- What if Rhino crashes? - What if a request takes minutes or hours to solve? - What if you need to update the system?- Setting up cloud alarms - Removing all single points of failure - Setting up zero downtime deployments - Setting up auto-scaling Cost factors: - DevOps knowhow - Cloud application architecture knowhow- No single points of failure - Deployments without interruption - System auto-scaling - Enterprise: Service Level Agreement Cost factors: - From €49/month
Protecting the IP included in the parametric definitionsAll cases.- How do you protect the IP contained in your Grasshopper models? - How do you restrict access to your application to specific users/customers? - How do you keep your IT infrastructure and publicly accessible APIs secure? - While McNeel provides guides for Rhino.Compute, information security considerations are clearly left to the user Cost factors: - Information security know-how - Information security management infrastructure and standards- Strong information security principles - Information security management system - ISO 27001 certification (coming soon) Cost factors: - From €49/month for general security features - From €49/month per seat for organization features with permission system
Handle many simultaneous users/requests Handle punctual surges in the number of users/requestsCases (3) and (5).- What happens if many users send many simultaneous requests to your system? - Which requests are prioritized? - How do you prevent clogging of your servers? - How do you rate-limit batch computations? - How do you deal with long-running computations versus fast ones?- Setting up an application layer that decouples client applications from Rhino/Grasshopper workers Cost factors: - Cloud application architecture knowhow - DevOps knowhow- Advanced load balancing specifically optimized to handle such cases - Rate limiting built into the APIs and SDKs - Caching, taking into account the Grasshopper dependency graph - Delivery of results via CDNs Cost factors: - From €49/month, computation priority and flexibility increase with further plans
Ensure optimal performanceAll cases. Critical for (1), (2), (3), and (5).- What if you want to expand your business to other continents? - What if some of your Grasshopper computations need to be very fast, while others may take longer, and you don’t care so much about their speed? - What if the same solution is requested repeatedly? Does it need to be computed again and again, or can it be cached? - Rhino Compute provides simple load balancing and caching only. - Long-running computations might cause trouble due to HTTP connection timeouts. Cost factors: - Cloud application architecture knowhow - DevOps knowhow- Caching, taking into account the Grasshopper dependency graph - Advanced load balancing specifically optimized to handle such cases - Delivery of results via CDNs Cost factors: - From €49/month, computation priority and flexibility increase with further plans
Developer tools (SDKs) for various environments(1) and (3): Backend calls for exporting files (4): Some cases (5): Required- Do you need to exchange data with other software? - Which languages are you calling the APIs from?- McNeel provides SDKs for Python, JavaScript/TypeScript and .NET- SDKs for JavaScript/TypeScript and .NET Cost factors: - From €49/month plus access to Geometry Backend API (sold separately)

Additional Features

Requirements Relevant for... Important questions to consider... Rhino Compute ShapeDiver
3D Visualization of results Cases (2) and (3), possibly (4) and (5).- What type of geometry needs to be visualized? - Does the application need interactive features? - Can the viewer display many objects? Big meshes? - How are materials defined?- McNeel provides an online 3dm file viewer (https://www.rhino3d.com/viewer/#/). It is open source and can be modified for your application. - The three.js javascript library offers a 3DMLoader functionality. Cost factors: - WebGL/javascript knowhow- Optimized 3D viewer - Advanced features (interactions, animations….) - Advanced control from Grasshopper using ShapeDiver’s plugin Cost factors: - From €49/month, plus access to Viewer API (sold separately)
Integration with other softwareCase (4).- How does data travel between the front end of your application and other software environments where it needs to be created and/or consumed?None out of the box.- Desktop clients (Rhino, Grasshopper, Illustrator, more coming) - Autodesk Forma integration Cost factors: - From €49/month, plus access to Viewer API (sold separately)
Rely on third-party pluginsPotentially any case.- Do the needed third-party plugins work “headless” (Rhino Compute running without the Rhino interface)? - Do the designers working on Grasshopper work in the same plugin version as the one installed remotely? - Are the plugins used backward compatible? - Are plugins performing unsafe operations for the servers? Consuming dangerous amounts of resources?- Some plugins do not work headless and are not compatible with Rhino Compute - Reviewing of plugins for security issues - Setting up zero downtime deployments Cost factors: - In-depth Grasshopper development know-how - DevOps knowhow- List of safe, reviewed plugins, including plugins that do not work 100% headless - Regular updating and maintenance of supported plugins - Ever-growing list of supported plugins Cost factors: - From €49/month
Rely on self-made pluginsUsually, cases (3), (4), and(5).- How to/who can deploy updates to self-developed plugins?- Reviewing of plugins for security issues - Setting up zero downtime deployments Cost factors: - In-depth Grasshopper development know-how - DevOps knowhow- Automated deployment pipeline for plugins - Forum & Private Support Cost factors: - From €49/month, plus access to a private system required (sold separately)

Takeaways

In our table, we highlighted essential factors to weigh when developing a cloud system with Rhino and Grasshopper. These include setting up a web server, licensing, service interruptions, intellectual property protection, user management, performance optimization, using developer tools, visualization, software integration, and handling plugins. By considering these, decision-makers can confidently choose the right cloud solution.

For Rhino Compute, the architecture and implementation of software measures and systems that address the above points is open; the responsibility for many of these rests heavily on the user, with the costs hinging on cloud providers, licensing fees, and the potential need for in-depth technical know-how. 

Meanwhile, ShapeDiver offers a streamlined, comprehensive platform around the parametric computation core based on Grasshopper. For many of the key implementation aspects listed above, the platform proposes a specific solution as part of ShapeDiver’s subscription plans. Additionally, the platform goes through regular updates for its security protocols, offers load balancing and caching mechanisms, and provides a suite of developer tools, with cost considerations integrated into its tiered subscription plans.

Conclusion

In this article, we aimed to deliver a comprehensive comparison between choosing Rhino Compute or ShapeDiver when building cloud applications based on parametric design algorithms. We first introduced both Rhino Compute and ShapeDiver, having emphasized the fundamental difference between the two. Rhino Compute is a technology, which can be used in the process of building a custom cloud application relying on solving Grasshopper definitions. ShapeDiver, on the other hand, is a fully managed cloud platform that already solves many key implementation aspects relevant to any cloud application.

With this in-depth comparison, our intention was to provide a valuable resource that aids in your decision-making process, regardless of whether you are an individual designer, a startup, or a larger enterprise. Ultimately, the choice between Rhino Compute and ShapeDiver depends on the specific requirements of your project and the internal and external resources you have access to.

In a nutshell, if your resources include significant expertise in building secure and performant cloud applications, and if your use case involves challenges that are not solved by ShapeDiver’s infrastructure and services, your team might find Rhino Compute more flexible as a basis for your project. In many other cases, ShapeDiver generally offers a cost-effective, secure, and comprehensive solution, allowing you to focus on the core functionalities of your application and not worry about infrastructure, security, and performance.


<< Are you thinking of or currently working on a project that requires running parametric CAD models on the cloud? We’re here to help! Our team has gathered significant expertise when it comes to building cloud applications based on Rhino and Grasshopper with Rhino Compute or ShapeDiver. We’ll be happy to schedule a cost-free consultation call with your team and help you decide what is the best way forward with your current and future projects. >>