Use your Muse 2 to stream EEG to the backend; the app shows live brainwave data. Practice in the Lab (3D simulation), record training sessions, bind them to machine controls, then trigger webhooks from the machine page or with your brainwaves to fly a real DJI Tello (takeoff, land, move).
Install the platform-specific tool and start streaming EEG from your Muse 2. Keep it running for the next steps.

Macpython3 -m pip install -r requirements.txtconda install -c conda-forge liblsl -y (for arm64 compatibility)Both BlueMuse (Windows) and muselsl (Mac) stream data to LSL, which our app reads via WebSocket.
Platform support: Both BlueMuse (Windows) and muselsl (Mac M1/M2) are fully working and tested. The FastAPI backend automatically detects Mac and configures the LSL library for arm64 compatibility.
Start the NeuroPilot backend and frontend, then connect your Muse 2 so the app shows live EEG.
_backend, port 8000)._frontned, npm run dev, port 3000).If you use muselsl on Mac and the backend did not auto-connect to the stream, call POST /eeg/reconnect after the streamer is running.
Use Lab for 3D simulation, record Training sessions, then bind those sessions to machine controls for the DJI Tello.
Start the DJI backend, connect to Tello Wi‑Fi, then set the webhook URL on each bound control.

python3 webhook_server.py in dji_backend). It listens at http://localhost:8888/command and forwards commands to the Tello via UDP.http://localhost:8888/command and save.The frontend never calls 8888 directly; the NeuroPilot backend (port 8000) proxies webhook calls to the DJI backend.
Open Connect on the machine page with the DJI backend and Tello running; when your brainwave matches a bound control, the backend calls the webhook and the Tello responds.
http://localhost:8888/command; the DJI backend sends the command to the Tello. The real drone takes off, lands, or moves.Safety: use small distances, keep line-of-sight, and be ready to land if the drone misbehaves.
Muse streamer not connecting? Check that your Muse is charged and in pairing mode. Restart BlueMuse (Windows) or muselsl (Mac) if needed.
No EEG data? Verify your streamer (BlueMuse or muselsl) is running and connected. Check console for error messages.
Machine not responding? Ensure your machine is properly configured in the Machines page and that training sessions are bound to controls.
WebSocket errors? Make sure the FastAPI backend is running on http://localhost:8000