How to Maschinenraum

This documentation is aimed at assemblies and describes how you can manage your assembly and content in the Maschinenraum (engine room).

The software is designed to also work with future events with physical attendance, as well as mixed events. Therefore it has options to create physical rooms as well. However for the most of you at rC3 only the digital features are relevant.

Important Infos

Legal entity for abuse reports is the CCCV GmbH. All links pointing into the internet, are not whitelisted and will trigger a dereferer notice. The notice will highlight that this link is outside our domain and hence the operator of said service is responsible for it.

You are responsible for your assemblies and any content within its realm. Any abusive content will be deleted without warning.

Hosting: If you want to run your own services for the rC3, please host them yourself. If you use a service, it has to be based in the EU. Using US-based providers is not acceptable if you want your content to flow into the rC3. We reserve the right to ignore these links or delete them from the engine room immediately. These services are not compatible with our privacy policy.

Whatever happens in your assembly: You are responsible for it! Therefore remember to add imprint and privacy statements to your own pages.


The engine room at is for managing your assembly. This is not the conference frontend and you will not see the content of other assemblies!

The account you use here can (not: must) be used later to access the conference platform, as soon as you have linked a conference ticket to it (a link for this will come from the ticket tool in due time). For login you use username (instead of eMail) and password from the signup.

When you create your assembly, it will get a short name (slug), which we use in URLs, and a descriptive name - after that it will go on in a bigger menu:

Organisational Data

Under this menu item you can define how your assembly is represented:

  • Basic data: What's your name? What do you do? Do you habe a logo or website? Enter tags for the search! You can also upload a banner for your page in the frontend. The page is about 1200px wide, but will be scaled responsive. A format of 16:9 makes sense, but you are basically free. Banners should not have more than 2000x2000px.
  • Links: To which assemblies is do you have thematic or personal ties? Next to which can you be placed?
  • Members: Who's part of your assembly? The role of "offical contact person"(offizieller Ansprechperson) will be used as such. We'll highlight the person on the website and use them as contact for the orga, for example in abuse cases. The role manager will be displayed as a regular person (should you choose to assign it), but is capable of changing settings of the assembly. Last but not least, all members can be displayed publicly or not.


  • Here you can request a token that your assembly can use to distribute badges to users, for example.
  • In addition, external applications can be registered here, which can then request OAuth2 -based authentication from users of the conference.

How are rooms created?

Rooms are based on the physical world (see intro). They can be created for the conference website (internally also called 'Plain UI') as well as for the 2D world, although there are differences.

Unfortunately, the 2D-world is not barrier-free, therefore you have the possibility to create barrier-free PlainUI BBB-rooms for Self Organised Sessions or "campfires" for spontaneous gatherings, relaxed chatting and socializing in the barrier-reduced conference website.

To create a room, enter name, type of room and capacity. If you're planning a lecture hall, workshop room or stage, please keep in mind that online conference rooms don't scale indefinitely. There have been BBB rooms with about 90 participants. This only works if participants stay muted when silent and as few as possible activate cameras (e.g. only the speakers).

Contributing a map to the 2D world

To add a map to the 2D world, you need to specify a Git repo that is clonebar. If the repo is private, you'll have to add deploy tokens in the URL, e.g.

You can read a "How to create a compatible map" in the rC3-World HowTo.

Your map will be checked automatically by a linter if you have specified the repo. * If you get an "error", your map will not go online. You most likely have not fulfilled important requirements. You will find corresponding hints in the engine room. * If a warning is displayed, your map will go online. There are hints with potential for improvement.

What should projects actually be?

Anything you'd like to share with the world.

Flying mate-box, cocktail robots, waffles of mass destruction? Show us and the world!

How are projects created?

We want to see your projects! In order for the good stuff to end up in the frontend, we need from you:

  • Project name
  • Description: The flavor text for the info page of your projects in the frontend. What will be shown? Why do beings not want to miss it? Where did the idea come from? Who made it?
  • Also: We're still searching people for xyz
  • Links to other contents (through deferrer) possible, like a gallery or source code repos, ...

Of course you can link e.g. wikis of your projects. However, anything outside of the rC3 domains is "YOLO land" and will come with a dereferrer warning.

External media and streams

External streams from YOLO-land have several downsides (GEMA, abuse, security, ...), which is why we don't embed them in the world or in the conference website, but link out to your own pages. That means, users will get to your own infrastructure via a dereferrer.

How to create events with a timetable entry?

You can create lectures and sessions as part of your assembly, which will then also appear in the timetable in the frontend (somewhat separated from the official program) - as something in between an official lecture and an independent self-organized session. A room reference is not necessary (but somehow useful, because otherwise nobody knows where to go). To create a session, click on the plus and enter the relevant information. If you select one of your BBB rooms for such a session, all assembly members with moderation rights will join.

What are badges and how to create them?

Badges should strengthen the event's explorative character: Assemblies can distribute these stickers/awards for "been there", "discovered something" or maybe also "P=NP proven"...

How does it work and what is possible? What means sticker and achievement mode?

Badges need:

  • A name
  • A picture: we recommend PNG, 512x512px
  • Select: sticker or achievement mode

Badges are distributed to users via token. A suitable token can be generated when generating the badge.

  • Stickermode: Click on it, I want to have it, done. Think of it like the sticker boxes you had with your physical assemblies.

  • Achievement

    • Mode 1 (anonymous/ user not known): The assemblies gets a redeem token for the user, then they get the token and the profile with the input box opens (similar to found easter eggs). Redeem the redeem code in your profile to unlock the achievement and get the badge.
    • Mode 2 (user / SSO known): The assembly hands out the badge to the user. The user has to accept the badge to receive it.

Collected badges can be found in the user's profile. You always have to actively confirm the receipt of the badges - not everyone wants to suddenly find a pink dolphin vibrator in the profile...

Assign directly via Maschinenraum

Within the Maschinenraum Badges can be assigned directly to users.

Create Redeem Tokens

Redeem Tokens (TM) are required to otherwise award badges. There are four different classes:

  • One-Time: This token is redeemable exactly once.
  • Permanent: This token is redeemable an infinite number of times.
  • Map: This token can only be redeemed in rc3.World-maps.
  • Limited: This token is redeemable exactly n times.

These can be created via the Maschinenraum (see image) or via API:

Just send a REST POST Request to /api/c/<conference_slug>/assembly/<assembly>/badges/new_redeem_token with the following body:

  issuing_token: "<secret_issuing_token>",
  badge_class: "<single|permanent|limited|map>",
  amount: <int>

amount is only necessary if you create a limited redeem token.

How to distribute badges to the users?

Using Redeem Tokens to get the badge

Badges can be distributed via the Redeem Tokens.

User adds it via the frontend

A user can go to his profile (/<conference_slug>/me) and redeem a token in "My badges".

A url is available to auto-fill in the token input field: /<conference_slug>/me/redeem_badge/<redeem_token>. This is perfect to use it in QR codes.

When a user redeems a badge via his profile, it is automatically accepted and set to private on their profile.

Automaticly assign a badge to a user via the API

An API is provided to automatically assign a badge to an user. These badges need to be accepted by the user (/<conference_slug>/me/manage_badges).

Just send a REST POST Request to /api/c/<conference_slug>/badges/redeem_token with the following body:

  token: <redeem_issuing_token>,
  username: <username>
Assigning badges via

In the a tile can be linked to a badge. When users enter this part, they automatically get the badge assigned. It works similar to opening a website, for this the getBadge property is used. You have to use Map Redeem Tokens.

API Repsonse

The API always answaers the following when a badge is sucessfully assigned:

  "badge": <badgename>,
  "user":  <username>,
  "created": <True if the badge has been assigned the first time>

Assembly status

In the machine room, you will find a box at the top right of your assembly page that displays the status of your assembly. After logging in, it will say logged in or accepted. If it says rejected, you have already received a mail.

Any More Questions?

Please send any questions not covered here to the Assembly Team:

VOC, Streaming and Stuff

There is separate documentation for channels and connected questions:

In case of questions regarding streams please contact: recommended: IRC, #voc-lounge im possible: