Bitfocus AS
logo
logo
Bitfocus AS
logo
logo
Sign upSign in

Loading...

Bitfocus

Subscribe to our newsletter

The latest news, articles, and resources, sent to your inbox.

FacebookInstagramGitHubYouTubeLinkedIn

Products

  • Buttons
  • Companion

Integrations

  • Supported Devices
  • Developer Community
  • Connection Development

Support

  • Support Overview
  • Documentation
  • Video Tutorials
  • Community Forum

Sales

  • Resellers & Integrators
  • Buttons Pricing

Updates

  • Case Studies
  • Events & Trade Shows
  • Press Releases
  • Product Updates
  • Webinars

Legal

  • Legal Overview
  • Privacy Policy
  • Buttons EULA
  • Terms & Cookie Policy

Company

  • About us
  • Press kit
  • Careers

© 2026 Bitfocus AS. All rights reserved.

Understand positions
Docs for
Overview
Getting started
What is Bitfocus Buttons?
Install Buttons and get started
Manage your Buttons license
Activate Buttons offline
Find your way around Buttons
Create your first backup
Add an ATEM connection
Choose a control method
Choose an installation path
Install Buttons on Debian or Ubuntu
Understand HA clustering
Kubernetes HA
Update or remove Buttons
Positions
Understand positions
Create a position
Add controls and sections to a position
Create your first button
Use a connection's presets
Build more capable button actions
Add more feedback to a button
Organize controls in a section
Shift Section
Organize controls with a Folder Section
Add a Popover Section
Build and reuse a Shared Section
Build a Router Section
Understand Custom Routers
Custom Router panel
Surfaces
Surface compatibility
Add and attach a surface
Device orientation
Connections
Update a connection's module safely
Monitor and troubleshoot a connection
Router integrations
VideoHub and AJA KUMO
Utah Scientific BPS
Generic SW-P-08
Nevion VideoIPath
Arkona BLADE//runner
Routing
Physical routing
Configure ports and labels
Take a physical route
Understand route status
Topology graph
Routing Presets
Get started with virtual routing
Configure Nested Shapes
Reverse routing
Tielines
Routing Projects
Routing settings
Troubleshoot a route
Tally
Understand the Tally system
Send ATEM tally and labels to a UMD
Interpret Active Tally state
TSL/UMD connections
Diagnose tally problems
NMOS
Understand NMOS in Buttons
Connect Buttons to an NMOS Registry
Built-in Registry Server
Configure NMOS connections
Discover and adopt
Browse the NMOS inventory
Manage NMOS multicast addresses
Diagnose NMOS problems
Understand Cuelists
Build a Cuelist
Read and advance a running Cuelist
Control a Cuelist from a Position
Workflows
Understand workflows
Build your first workflow
Reuse a group of workflow nodes safely
Troubleshoot a workflow
Recipes
Sequence a timed automation
Call an HTTP endpoint from a workflow
REST endpoint
Use variables
Understand variable scope
Understand nested variables
Update expressions for v1.8
Plan and use Tags
Access
Create and manage users
Create roles and assign permissions
Grant access to specific resources
Show different controls by role
Sessions
Set up PIN and NFC sign-in
SSO
Get started with SSO
Connect a generic OIDC provider
Connect LDAP or Active Directory
Map identity claims to roles
Secure a Buttons deployment
Integrations
External control
Connect to Bitfocus Listener
USB Relay
Install USB Relay on Windows
Install USB Relay on macOS
Install USB Relay on Linux
Install USB Relay on a Raspberry Pi
Get started with the Control API
Secure and monitor the Control API
Control API reference
API reference
Administration
Enable and manage installable features
Services and health
Configure and monitor scheduled backups
Restore a backup and verify it
Export or import Buttons configuration
Store and rotate connection secrets
Replace the HTTPS certificate
HA backup and recovery
Settings
Collect support information
Reference
Glossary
Button Inspector reference
Network ports reference
Expressions
Internal actions reference
Routing Presets panel reference
Startup configuration reference
Workflow nodes
Connection workflow nodes
Workflow workflow nodes
Internal workflow nodes
Position workflow nodes
API workflow nodes
Utility workflow nodes

Loading...

Previous
← Positions
Next
Create a position →
Contact support →
You are viewing documentation for Buttons 1.8.See the docs for Buttons 1.6
Buttons/Positions/Understand positions

Understand positions

A position is one person's complete operating workspace in Buttons. Use positions to coordinate the surfaces at each physical operating position while keeping that person's controls, navigation, actions, and state separate from other positions.

What a position represents#

A position represents where one person works, not a room, device, or user account. Examples include a sound position, graphics position, shading position, or production desk.
Each position provides an independent workspace. This allows several people to use the same Buttons system without their navigation or position state interfering with one another.

How surfaces fit into a position#

A surface is one interface to a position, such as a hardware panel, browser session, or iPad. A position can combine several surfaces and arrange them as one workspace.
For example, a sound position might use:
  • A hardware panel beside the mixer for frequently used controls.
  • A browser on the workstation for a larger overview.
  • An iPad for controls needed elsewhere in the room.
These are three interfaces to the same sound position, not three separate positions.
Arrange the surfaces on the position canvas to reflect how they are arranged in the real world. Where surface areas overlap on the canvas, they can expose the same controls. This lets two interfaces provide access to a shared control without maintaining separate copies.

What belongs to a position#

A position brings together:
  • Its assigned surfaces and their arrangement.
  • Sections and controls placed on its canvas.
  • Navigation state used across those surfaces.
  • Position variable values.
Position variable definitions are available across positions, but each position maintains its own current and initial values. A shared section can therefore use the value belonging to the position where it appears.
Use a shared section when controls should be maintained centrally and reused across positions. Use separate position controls when their behavior or state belongs only to one person's workspace.

The editor is separate from the live position#

The position editor provides a separate workspace for designing and testing a position without moving the live surfaces through the editor's navigation and local state. Layout and configuration changes remain in the editor until you select Apply.
The editor also maintains its own runtime state while you test controls. Opening a popover, changing a page, advancing an action step, or changing a local value in the editor does not automatically move the live position to the same state.
When the tested state should become the live state, open the editor's actions menu and select Push State to Live. This sends the editor's current runtime state to the live position and its surfaces. It does not replace Apply, which saves layout and configuration changes.

Warning

Editor isolation does not make actions harmless. Holding Shift and pressing a control enters Execute Mode and performs that control's actions against connected equipment or software. Treat an editor test like a press on a live surface: check the selected control and its operational consequences first.

Example: separate sound and graphics workspaces#

A sound operator and graphics operator can work in the same production through separate positions:
  • The sound position combines a panel, browser, and iPad with mixer controls and audio state.
  • The graphics position contains playback and graphics controls on its own surfaces.
  • Each person can navigate and change position state without moving the other person's workspace.
  • Centrally maintained controls needed by both positions can come from a shared section.
This separation keeps each workspace focused while allowing the positions to control the same connected production systems where appropriate.

Choose the right structure#

Create another surface when one person needs an additional interface to the same workspace.
Create another position when another person needs an independent workspace, navigation, controls, or position state.
Create a shared section when several positions need the same centrally maintained controls.

Where to go next#

  • Create a position and arrange its canvas.
  • Add or adopt a surface and assign it to the position.
  • Create sections and controls for the work that happens there.

Was this helpful?

Was this helpful?

0 of 0 users found this page helpful