Skip to content

usalu/semio

Repository files navigation

semio
Cite Latest Release AGPLv3 License
Grasshopper Dynamo Sverchok
Python C# Typescript
Collaborative, scalable and cross-platform designing.


You want to ✏️ the next 🏛️🏘️🏢🏭🏫🏨⛪🕌 with 🤖? But 📐🔢🗣️👥🖱️⌨️ takes all your ⌚? Then try to 🧠 the 🧬 and let semio 💉🖥️✒️🖨️🪄🚀.

What is semio?

Analogies

Let me start by what semio is not:

  • Rhino, SketchUp, Blender, … A 3d-modeling tool 🐚

    In semio you link 3d-models.

  • Revit, ArchiCAD, Vectorworks, BricksCAD, BlenderBIM, … A BIM-authoring tool 🧱

    In semio you link instances of your own types.

  • Grasshopper, Dynamo, Sverchok, … A node-based programming tool 🦗

    In semio you link the input with the output.

  • Illustrator, AffinityDesigner, InkScape, … A vector graphics tool ➡️

    In semio you link drawings.

  • EnergyPlus, TRYNSIS, Modellica, … A simulation tool ☀️

    In semio you link models and results.

  • Autodesk Construction Cloud, Bimcloud, Bentley Infrastructure Cloud, Nextcloud, … A cloud tool ☁️

    In semio you link files acros a folder.

  • IFC, Speckle, BHoM, … A data tool 📄

    In semio you link design knowledge.

  • Hypar, Victor, Fusion, CadQuery, … A parametric tool 🎛️

    In semio you link static pieces.

So, what is semio?

  • An open-source ecosystem for designing modular architecture 🧩
  • A designer-affine pencil for a placeholder-based, non-linear and iterative design space exploration 🔀
  • A collaboration-friendly platform to design effectively in large teams 🤝
  • A local-first storage to link, reuse and develop design systems 🔗
  • An ai-boosted design assistant, ready for LLM super powers 🤖
  • A ready-to-use API for other developers 👩‍💻

When should I design with semio?

If you design storeys, walls, windows, slabs, roofs by moving them around, changing individual dimensions of those, then you should stick to your BIM tool ❌

If you design atmospheres based on hand drawn sketches, eager to find the right shape based on surfaces with one-of-each-kind morphology, then you should stick to your 3d tool ❌

If you design typologies which you iteratively detail and you want to test systems where you are tinkering about rules and exceptions, then you should use semio ✅

Are you out of your mind?

But wait a second, FILES 🤯 We live in the 21. century! Cloud-only object-based level 3 BIM collaboration is so much smoother!

It is true, you can even follow the cursors of your collegues and see how they pan and scroll 📺

But are these unique features worth paying the price when designing architecture?

Just to view a design, you suddenly dependen on servers, licenses and companies. Giving up dozens of tools which work on files for editing, sharing, access control, versioning, backups, automation, ...

In fact, files are the best supported objects in computers 🏆

Is there really no alternative?

Well, if one agent (person or robot) can at most work only on one file, then we need to make sure that not more than one agent works on the same file.

But how?

We need to set boundaries 🧩

3d modelling tools have geometry as its units. BIM tools have building elements as its units. Automation tools have arbitrary structured data as its units.

It wouldn't make any sense to say that one designer works on one surface, another one on one wall, another one on a json 🐜

How do designers collaborate anyway?

Well, mostly through an architectural concept that turns a design into a system of pieces 🕸️

And this is what semio is about. Making the implicit explicit in order create boundaries across files where humans and robots can work together 🚀

Getting started

Currently the user interfaces are compiled for Windows only.

semio has two user-interfaces:

  • Grasshopper 🦗
  • sketchpad ✏️

The heart of semio is the engine.exe which exposes a GraphQL API. If you are developer, then you should visit http://localhost:5052/graphql/.

Installation

The Grasshopper plugin can be installed over the Rhino Package Manager 🟢

  1. Open Rhino Package Manger ⌨️
  2. Search for semio 🔎
  3. Install the latest version ⬇️
  4. Restart Rhino 🔄

Rhino Package

sketchpad needs no installation. Just unpack the folder and run it. If you run sketchpad without Grasshopper then you need to manually download and start the engine 🏎️

NOTE: The binaries are not signed (yet). Therefor Windows might give a warning.

That's it!

Examples

You can download the latest examples or take a look here 👀

Contribution

New platforms wait to be reached, bugs wait to be found, examples wait to be created, documentation waits to be written, ...

Feel free to open a discussion, an issue or take a look under the project site 👋