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
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.
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:- Power on the block — it begins advertising over Bluetooth.
- In the SAM Studio editor, open the Blocks panel and click Pair New Block.
- Enter the Pairing ID or select the block from the device list.
- SAM Studio establishes the Bluetooth connection, and the block appears as available in your project.
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.
- 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.
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.