Ortoo: The Geometry Messaging System
Ortoo provides peer to peer geometry sharing. Built around a binary mesh format* that is 5x – 6x smaller than an .obj file, Ortoo is able to transfer mid-size meshes (< 35k vertices) quickly and painlessly between connected peers. The sharing/hosting app (called the Ortoo Browser) handles all the technical details of peer to peer networking via Unity’s RakNet implementation, so there is no setup required on the user side.
Currently, only geometry created with Grasshopper is supported, but future development would include support for Blender.
Ortoo is licensed under http://creativecommons.org/licenses/by-nd/3.0/deed.en_GB
2.0 How To Use:
- Share a mesh
- Drag the “Outbox” component to the canvas
- Hook up any mid-size triangulated mesh (<35k verts) to it
- Start up the Ortoo Browser
- Click “Share Outbox”
- Fill in the details
- Although you can’t view the main page anymore, your Outbox will be visible and connectable to anyone else running the Ortoo Browser
- To stop sharing click “Turn Sharing Off”
- Join a Session
- Open the Ortoo Browser and click on an available session
- Fill in the details
- To disconnect, click “Cancel”
- Drag the Inbox component on to the GH canvas and manually trigger it with a button, boolean toggle, or timer.
2.0 How it Works
There are two main parts to Ortoo:
- Sharing the Data
- Ortoo shares data via Unity’s RakNet implementation.
- More specifically, the Ortoo Browser (a separate app) connects to a privately run Master Server in order to register a sharing session.
- No mesh data is transferred here – the Master Server is only used to allow other people to connect to you (some fancy network footwork is done in the background here).
- The Master Server then displays all currently connectable sessions (of which yours is one)
- When someone else joins your session the data in your Outbox is passed to the Inbox of every other connected peer
- As a results, you will only have one file in your outbox, but multiple files in your Inbox
- All data is transferred directly from you to your peers, it does not go through the central server.
- Reading/Writing the Data
- The Outbox component for Grasshopper takes any triangulated mesh as input and writes it in a custom binary format to the “AppDataRoamingOrtooOut” folder.
- This folder is monitored by the Ortoo Browser and is what will be sent around to your connected peers (should sharing be turned on)
- The Inbox component for GH grabs all the mesh data in the “AppDataRoamingOrtooIn” folder and construct GH meshes, which it then outputs as a list
- Currently you have to manually refresh the Inbox component either through a button, boolean toggle, or timer.