> For the complete documentation index, see [llms.txt](https://danpeled.gitbook.io/synapse/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://danpeled.gitbook.io/synapse/home.md).

# Home

<figure><img src="https://1692736873-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZd3JnWpxV76WkW0ezohM%2Fuploads%2FMIMDfYkigYRGs97H0dPL%2FSynapse%20Vision%20FRC%20(1)%20(1).png?alt=media&amp;token=58c05c18-4ae6-4d2b-ab43-c5a4c9e7b97e" alt=""><figcaption></figcaption></figure>

Synapse is a vision processing library and toolset for [FRC](https://www.firstinspires.org/robotics/frc). It lets you run computer vision on a small Linux computer (a **coprocessor**) attached to your robot, then use the results in your robot code.

If you have never used Synapse before, start with [How Synapse Works](/synapse/getting-started/how-synapse-works.md) and then follow the [Quick Start](/synapse/getting-started/quick-start.md).

## What you get

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Extendable</strong></td><td>Use the built-in AprilTag and color pipelines, or write your own Python pipeline</td><td><a href="https://1692736873-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZd3JnWpxV76WkW0ezohM%2Fuploads%2F0vIKoGHsLRFXpRnA8QjY%2Fsettings.png?alt=media&amp;token=a9cb42a9-3ab5-4d92-807e-dddfec769e4c">settings.png</a></td></tr><tr><td><strong>Fast to iterate</strong></td><td>Deploy your vision project to the coprocessor like robot code, with one command</td><td><a href="https://1692736873-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZd3JnWpxV76WkW0ezohM%2Fuploads%2FDYUWeJ7ghRx7FsYFZhpr%2Frush.png?alt=media&amp;token=8f78e65c-a9cb-473b-a0e7-a602ec3bb07b">rush.png</a></td></tr><tr><td><strong>Built-in UI</strong></td><td>Tune settings, watch camera streams, and inspect results live from a web browser</td><td><a href="https://1692736873-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZd3JnWpxV76WkW0ezohM%2Fuploads%2FQIPZA1d9myPuIHpXtnqi%2Fux-design.png?alt=media&amp;token=96061cae-c675-4764-962d-2b175691b432">ux-design.png</a></td></tr></tbody></table>

## The pieces of Synapse

| Piece                              | What it does                                                                   | Runs on                         |
| ---------------------------------- | ------------------------------------------------------------------------------ | ------------------------------- |
| **Synapse runtime** (`synapsefrc`) | Reads cameras, runs pipelines, and publishes results                           | Coprocessor                     |
| **Web UI**                         | Live camera feeds, pipeline management, settings, logs, and device controls    | Any browser on the same network |
| **SynapseLib**                     | A Java/Python library that reads results and changes settings from robot code  | RoboRIO                         |
| **Synapse Manager**                | A desktop app that finds devices, opens their dashboards, and deploys projects | Your development computer       |
| **Synapse Sim**                    | Simulated cameras that render a 3D field, so you can test without hardware     | Your development computer       |

## Choose your path

{% tabs %}
{% tab title="I'm new to Synapse" %}

1. Read [How Synapse Works](/synapse/getting-started/how-synapse-works.md).
2. Check [Common Hardware Setups](/synapse/getting-started/quick-start/common-hardware-setups.md) and [Selecting Hardware](/synapse/getting-started/hardware-selection/selecting-hardware.md).
3. Install the software and create your first project in [Quick Start](/synapse/getting-started/quick-start.md).
4. Connect your robot code with [SynapseLib](/synapse/robot-interfacing/synapse-bridge.md).
   {% endtab %}

{% tab title="I have a coprocessor" %}

1. Install the runtime in [Installing Software](/synapse/getting-started/installing-software.md).
2. Create and deploy a project with [Project Management](/synapse/usage/project-management.md).
3. Open `http://<device-ip>:3000` and tune your pipeline in [UI Interaction](/synapse/usage/built-in-pipelines-1.md).
   {% endtab %}

{% tab title="I want to write a pipeline" %}

1. Learn the pipeline lifecycle in [How Synapse Works](/synapse/getting-started/how-synapse-works.md).
2. Follow [Custom Pipelines](/synapse/usage/custom-pipelines.md).
3. Add tunable settings with the [Settings API](/synapse/usage/custom-pipelines/settings-api.md).
4. Publish data with [Sending Results](/synapse/usage/custom-pipelines/sending-results.md).
   {% endtab %}

{% tab title="I have no robot yet" %}

1. Try [Working without a robot](/synapse/usage/working-without-a-robot.md).
2. Run the 3D field renderer with [Simulation](/synapse/usage/simulation.md).
3. Test AprilTags and robot pose estimates before touching hardware.
   {% endtab %}
   {% endtabs %}

## Requirements at a glance

* A Linux coprocessor (Orange Pi 5, Raspberry Pi 5, or similar) with SSH enabled.
* Python 3.11–3.14 on the coprocessor. The installer can build Python 3.12 automatically if none is available.
* A development computer with Python 3.11–3.14.
* A camera supported by OpenCV/V4L2, or the built-in simulation cameras.
* Internet access on the coprocessor for the first install, so Python packages can be downloaded.

## Source Code

The source code for Synapse is available on [GitHub](https://github.com/DanPeled/Synapse).

## Contact Us

To report a bug or request a feature, [open an issue on GitHub](https://github.com/DanPeled/Synapse) or join the [Discord server](https://discord.gg/zHJRV8Stj3).
