gravix_effects_webrtc

The Gravix camera's filtered stream as a flutter_webrtc video track (LiveKit or any WebRTC stack). Depend on this package only — it brings gravix_effects and re-exports its API. Full guide: ../gravix_effects/README.md. Adding Gravix to an existing LiveKit app (for AI coding agents and developers): AGENTS.md.

final cam = await GravixCamera.start(lens: GravixLens.front, fps: 30);
final out = await GravixWebRtc.attach(cam);   // out.stream + out.videoTrack; survives switchCamera()
// LiveKit: LocalVideoTrack(TrackSource.camera, out.stream, out.videoTrack, const CameraCaptureOptions())
await cam.stop();                             // also disposes the track + stream

Frames are I420 by default (full rate with software VP8); attach(cam, textureFrames: true) sends zero-copy GL textures for hardware encoders. Each frame carries its camera capture time and WebRTC's timestamp aligner is off, so viewers keep audio in sync through the SDK's fixed preview delay.

Example: example/ — camera, looks, beauty panel and Go live / End live to a LiveKit room (video + mic): flutter run --dart-define=LK_URL=wss://… --dart-define=LK_TOKEN=….

Libraries

beauty_ui
The ready-made Gravix beauty UI (GravixBeautyPanel + GravixBeautyController), re-exported so an app that depends only on gravix_effects_webrtc can use it: import 'package:gravix_effects_webrtc/beauty_ui.dart';
gravix_effects_webrtc
Gravix Effects -> flutter_webrtc / LiveKit: publishes the running GravixCamera as a WebRTC video track.