Back to SoundShare
Feature Requirements

What does each mode need?

Every transfer mode has different device, browser, and network requirements. Check your setup against the list below before choosing a mode.

ModeInternetCameraSensorsDesktopMobile
Wormholeโœ“โœ—โœ—โœ“โœ“
Visual QRโœ—โœ“โœ—โœ“โœ“
Hotspotโœ—โœ“โœ—โœ“โœ“
Bumpโœ“โœ—โœ“โœ—โœ“
Pointโœ“โœ—โœ“โœ—โœ“
๐Ÿช„

Wormhole / Audio

Enter a 3-word code or broadcast via ultrasonic sound

ReliabilityHighly Reliable
99%

Requirements

  • Internet: Required for signaling (Wormhole / Audio mode)
  • Browser: Any modern browser โ€” Chrome, Firefox, Safari, Edge
  • Devices: Any device โ€” desktop, laptop, phone, tablet
  • HTTPS: Required (auto-enforced on production URL)
  • Microphone: Required only for audio listen mode (receiver side)

โš ๏ธ Important Notes

  • Both sender and receiver need internet access for the initial WebRTC handshake.
  • Once the P2P connection is established, file data travels directly device-to-device โ€” never through servers.
  • Ultrasonic audio requires a quiet room and the devices within ~3 m of each other.

โœ“ Works on

ChromeSafariFirefoxEdgeDesktopMobile
๐Ÿ“บ

Visual QR Stream

Animated QR code stream โ€” 100% offline, no network at all

ReliabilityHighly Reliable
99%

Requirements

  • Internet: Not required โ€” fully offline after app loads
  • Camera: Required on receiver to scan the QR stream
  • Browser: Any modern browser with camera API support
  • Devices: Sender can be any device; receiver needs a camera
  • HTTPS: Required for camera access

โš ๏ธ Important Notes

  • Transfer speed is limited by how fast the camera can scan QR frames (~2โ€“8 KB/s depending on screen brightness and distance).
  • Best for files under ~1 MB. Larger files will work but take longer.
  • Keep the screen brightness high and the distance between devices under 30 cm for reliable scanning.
  • The BarcodeDetector API is used on Chrome/Edge; jsQR fallback is used on Safari/Firefox.

โœ“ Works on

ChromeSafariFirefoxEdgeDesktopMobileAir-gapped networks
๐Ÿ”ฅ

Hotspot Mode

Ultra-fast local P2P via QR handshake โ€” no servers involved

ReliabilityVery Reliable
90%

Requirements

  • Internet: Not required โ€” offline after app loads
  • Local Network: Both devices MUST be on the same Wi-Fi or one must be on the other's Mobile Hotspot
  • Camera: Required on both devices for QR scanning
  • Browser: Chrome recommended; Safari/Firefox supported
  • Devices: Any two devices with a camera โ€” desktop or mobile
  • HTTPS: Required for camera access

โš ๏ธ Important Notes

  • Both devices MUST be on the exact same subnet. One device on 2.4 GHz and one on 5 GHz may fail if the router keeps them separated (AP isolation).
  • Some corporate or hotel networks block peer-to-peer local connections (client isolation). Use a personal hotspot instead.
  • ICE gathering waits up to 4 seconds before generating the QR โ€” do not navigate away during this time.

โœ“ Works on

ChromeSafariFirefoxEdgeDesktopMobileLocal networks

โœ— Does not work on

Public Wi-Fi with AP isolationDifferent subnets
๐Ÿคœ๐Ÿค›

Bump to Share

Tap phones together at the same moment to pair instantly

ReliabilityGood โ€” sensor-dependent
75%

Requirements

  • Internet: Required โ€” uses Ably for bump-lobby signaling
  • Device: Physical mobile phone or tablet with an accelerometer โ€” desktops will NOT work
  • Browser: Chrome Android, Safari iOS 13+, or any browser with DeviceMotion API
  • HTTPS: Required โ€” iOS 13+ enforces permission only on HTTPS
  • Permission: iOS requires an explicit user gesture to grant motion permission
  • Timing: Both devices must tap within 800 ms of each other

โš ๏ธ Important Notes

  • iOS: DeviceMotionEvent.requestPermission() must be called โ€” the app handles this automatically when you select Bump mode.
  • Android: Permission is granted automatically; no dialog needed.
  • The bump detection threshold is 15 m/sยฒ (without gravity). Very gentle taps or soft phone cases may not register.
  • Both users must select "Bump to Share" mode BEFORE physically bumping. The matching window is 800 ms.
  • Some low-end Android phones report accelerometer values as null โ€” the app falls back to accelerationIncludingGravity (threshold 25 m/sยฒ).
  • Not available on desktops, laptops, or devices without a physical accelerometer.

โœ“ Works on

Safari iOS 13+Chrome AndroidPhysical phones & tablets

โœ— Does not work on

Desktop browsersLaptopsDevices without accelerometerFirefox on iOS (WKWebView restriction)
๐Ÿงญ

Point to Share

Point phones at each other using compass to pair

ReliabilityModerate โ€” environment-sensitive
65%

Requirements

  • Internet: Required โ€” uses Ably for point-lobby signaling
  • Device: Physical phone or tablet with a magnetometer (compass) โ€” desktops will NOT work
  • Browser: Chrome Android (full support) ยท Safari iOS 13+ (full support) ยท Firefox Android (limited)
  • HTTPS: Required for sensor permission
  • Environment: Avoid near metal furniture, speakers, magnets, or electrical panels โ€” they interfere with compass
  • Positioning: Hold phone flat and point the top edge directly at the other device. The matching tolerance is ยฑ25ยฐ.

โš ๏ธ Important Notes

  • iOS provides webkitCompassHeading โ€” a true magnetic north reading. Very accurate.
  • Chrome on Android uses deviceorientationabsolute โ€” also accurate with a calibrated magnetometer.
  • Firefox on Android falls back to deviceorientation (relative, not absolute) โ€” compass-based matching will NOT work reliably.
  • The match fires when headings are 180ยฐ ยฑ 25ยฐ apart. If you are having trouble, try calibrating your compass by moving the phone in a figure-8 pattern.
  • Strong magnetic interference (speakers, laptop charging cables, metal desks) can cause heading drift of ยฑ30โ€“90ยฐ, making matching unreliable.

โœ“ Works on

Safari iOS 13+Chrome AndroidDevices with calibrated magnetometer

โœ— Does not work on

Desktop browsersFirefox on Android (no absolute heading)Near strong magnetic sources