Skip to main content
Before you dive into building and teaching with SAM Studio, it helps to understand how the platform is organized. This page explains the core building blocks — from the three coding environments and the projects you create inside them, to the Bluetooth hardware blocks your students will program and the roles that shape how teachers and students each experience the platform.

Projects

A project is the primary unit of work in SAM Studio. Every time a student or teacher creates something — a flow, a block-based program, or a JavaScript script — it lives inside a project. Projects belong to exactly one coding environment (SAM Space, SAM Blockly, or SAM Script) and are tied to the account that created them. Key things to know about projects:
  • Each project stores the code or visual flow, any connected block configuration, and the project’s name and metadata.
  • Students can create personal projects at any time from their Dashboard, independent of lessons.
  • Teachers can view and open student projects directly from the class dashboard.
  • Projects are stored in the cloud and are accessible from any device the student signs in on.

Coding Environments

Coding environments are the three distinct ways to code in SAM Studio. Each environment targets a different age range and coding experience level. You choose an environment when you create a project, and that choice shapes the entire editor experience. SAM Space is a visual, flow-based environment designed for the youngest learners (typically grades K–5). Students drag block icons onto a canvas and connect them with lines to define behavior — no text, no syntax, just visual logic. It’s the most accessible entry point into programming and physical computing. SAM Blockly is a drag-and-drop, block-based coding environment built on Google Blockly (the same technology behind Scratch’s code editor). Students snap together colored code blocks that represent loops, conditions, variables, and hardware commands. It’s ideal for grades 4–8 and acts as a natural bridge toward text-based coding. SAM Script is a full text-based coding environment where students write real JavaScript or Python. It’s designed for advanced students or older learners who are ready to move beyond blocks. SAM Script exposes the full SAM Labs API, giving students fine-grained control over every hardware block.
A project’s coding environment is set at creation and cannot be changed afterward. If you want to explore a different environment, create a new project — your existing projects stay exactly as they are.

SAM Labs Blocks

SAM Labs blocks are physical Bluetooth hardware devices that students program using SAM Studio. Each block performs a specific function — emitting light, spinning a motor, detecting a button press, measuring temperature, and so on. Students connect blocks to their project and then control them through code or a visual flow. The block catalog includes:
  • Output blocks — LED, DC motor, buzzer, servo motor, RGB LED, and more
  • Input blocks — button, slider, tilt sensor, light sensor, temperature sensor, and more
  • Logic/connectivity blocks — blocks that process signals and pass them between other blocks
Every physical block has a small label printed on it showing its Pairing ID, which is how SAM Studio identifies and connects to it over Bluetooth.

Virtual Blocks

Virtual blocks are software emulations of physical SAM Labs blocks that run entirely on screen. They look and behave like their physical counterparts inside SAM Studio — a virtual LED lights up in the browser, a virtual button can be clicked to fire an input event — but no Bluetooth hardware is required. Virtual blocks are useful when:
  • Students don’t have access to physical hardware at home or during remote learning.
  • You want to demonstrate a concept before distributing hardware.
  • Students are testing their code logic before connecting real blocks.
You add a virtual block from the Blocks panel in any project editor. Physical and virtual blocks can coexist in the same project — you can prototype with virtual blocks and then swap in physical ones without changing your code.

Pairing

Pairing is the process of connecting a physical SAM Labs block to SAM Studio over Bluetooth. Each block broadcasts a unique Bluetooth signal. SAM Studio identifies the block either by its Pairing ID (the short code printed on the block) or through the browser’s built-in Bluetooth device picker. The pairing flow works like this:
  1. Power on the block — it begins advertising over Bluetooth.
  2. In the SAM Studio editor, open the Blocks panel and click Pair New Block.
  3. Enter the Pairing ID or select the block from the device list.
  4. SAM Studio establishes the Bluetooth connection, and the block appears as available in your project.
Bluetooth pairing requires Google Chrome or Microsoft Edge on a desktop or laptop with Bluetooth hardware enabled. Pairing is not supported on iOS or most tablet browsers due to platform restrictions on Web Bluetooth.
A paired block stays linked to the project session. If a block disconnects (goes out of range or runs out of battery), a warning indicator appears in the editor. Students can re-pair without losing their code.

Teacher vs. Student View

SAM Studio presents a different experience depending on whether you’re signed in as a teacher or a student. Both roles access the same platform at the same URL, but their dashboards and permissions differ. Teachers can:
  • Create and manage classes, add students by email or roster import, and generate join codes.
  • Browse the lessons library and assign specific lessons to a class with a due date.
  • Monitor every student’s project progress and completion status from the class dashboard.
  • Open and review individual student projects without the student needing to share anything manually.
Students can:
  • See lessons assigned by their teacher on their Dashboard and work through them at their own pace.
  • Create personal projects in any coding environment at any time.
  • Pair and use physical blocks or virtual blocks in any project.
  • Submit completed lesson work directly from the editor.
Teachers and students are distinguished by the account type set when the account is created or provisioned through your school’s identity provider. If your account type doesn’t match your role, contact your school administrator or SAM Labs support.

Lessons

Lessons are structured, curriculum-aligned activities that teachers assign to students from the SAM Studio lessons library. SAM Labs maintains a library of 850+ lessons covering STEAM topics across science, technology, engineering, art, and math — each tied to a specific coding environment and hardware set. A lesson typically includes:
  • A learning objective and step-by-step instructions presented inside the SAM Studio editor.
  • A starter project or template the student builds on.
  • Assessment checkpoints or a final submission the teacher can review.
Teachers assign lessons to an entire class or individual students. Assigned lessons appear on each student’s Dashboard under My Lessons. Students work through the lesson at their own pace, and their progress is visible in real time on the teacher’s class dashboard.

Explore Further

Coding Environments

Get a detailed look at SAM Space, SAM Blockly, and SAM Script — features, age ranges, and example projects.

SAM Labs Blocks

Browse the full hardware block catalog and learn what each block can do.

Teacher Dashboard

Learn how to create classes, assign lessons, and track student progress.

Quickstart

Ready to put these concepts into practice? Follow the step-by-step quickstart guide.