# `BB.LiveView`
[🔗](https://github.com/beam-bots/bb_liveview/blob/main/lib/bb/live_view.ex#L5)

Interactive LiveView-based dashboard for Beam Bots-powered robots.

BB.LiveView provides a self-contained dashboard that can be mounted into any
Phoenix application with a single router macro.

## Quick Start

1. Add `bb_liveview` to your dependencies in `mix.exs`:

    ```elixir
    def deps do
      [
        {:bb_liveview, "~> 0.1"}
      ]
    end
    ```

2. Mount the dashboard in your router:

    ```elixir
    import BB.LiveView.Router

    scope "/" do
      pipe_through :browser
      bb_dashboard "/robot", robot: MyRobot
    end
    ```

3. Visit `/robot` in your browser.

## Features

The dashboard provides:

- **Safety Controls**: Arm/disarm the robot with real-time status
- **Joint Control**: Slider controls for all movable joints
- **Event Stream**: Real-time PubSub message monitoring
- **Command Execution**: Execute robot commands with dynamic forms
- **3D Visualisation**: Interactive Three.js robot viewer
- **Parameters**: Edit robot parameters with type-aware inputs

## Multiple Robots

You can mount multiple dashboards for different robots:

    bb_dashboard "/arm", robot: ArmRobot
    bb_dashboard "/base", robot: BaseRobot

## Authentication

Protect the dashboard using standard Phoenix pipelines:

    pipeline :admin do
      plug MyApp.RequireAdmin
    end

    scope "/admin" do
      pipe_through [:browser, :admin]
      bb_dashboard "/robot", robot: MyRobot
    end

---

*Consult [api-reference.md](api-reference.md) for complete listing*
