Zum Hauptinhalt springen
Echtzeit-Radar & Feeds
Alle RSS Feeds ➔
👥 Community & Social
YouTube Security VideosTechLinked: Apple says no more upgradeability(25.09.2026 um 01:02 Uhr)
•
Podcasts & Audio BriefingsiPhone 18, iPhone Duo und AirPods auf dem Prüfstand | CHIP.Chat #44(25.09.2026 um 00:00 Uhr)
•
YouTube Security VideosGoogle Cloud Tech: A Developer’s Guide to Gemini 3.5 Transcribe(25.09.2026 um 01:00 Uhr)
••••••••
YouTube Security VideosTechLinked: Apple says no more upgradeability(25.09.2026 um 01:02 Uhr)
•
Podcasts & Audio BriefingsiPhone 18, iPhone Duo und AirPods auf dem Prüfstand | CHIP.Chat #44(25.09.2026 um 00:00 Uhr)
•
YouTube Security VideosGoogle Cloud Tech: A Developer’s Guide to Gemini 3.5 Transcribe(25.09.2026 um 01:00 Uhr)
••••••••
Intelligence View
⚡ tsecurity.de Intelligence

[LeapMotion + UniRx] Moving a Camera with Hand Gestures

Introduction I wanted to find a way to move the Main Camera in Unity when the only available input device was a Leap Motion (no mouse or keyboard). Demo Here's what I built. (The display shown is a Looking Glass, but that's…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

leap-motion-unirx-capture.png






Introduction



I wanted to find a way to move the Main Camera in Unity when the only available input device was a Leap Motion (no mouse or keyboard).






Demo



Here's what I built. (The display shown is a Looking Glass, but that's not the focus of this article.)






// Detect dark theme
var iframe = document.getElementById('tweet-1108794958318702592-826');
if (document.body.className.includes('dark-theme')) {
iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1108794958318702592&theme=dark"
}





When your hand is in a fist shape, the camera moves with your hand. When you open your hand, it stops. It feels like 3D mouse dragging — you can also move forward and backward.






Sample Code



Here's the code. Attach this script to a camera object and it should work. It uses UniRx.




using Leap;
using System.Collections.Generic;
using System.Linq;
using UniRx;
using UniRx.Triggers;
using UnityEngine;

/// <summary>
/// Camera controller
/// </summary>
public class CameraController : MonoBehaviour
{
/** Camera movement speed */
private float speed = 0.025f;

/** Leap Motion controller */
private Controller controller;

/** Entry point */
void Start()
{
// Leap Motion controller
controller = new Controller();

// Get hand data from Leap Motion every frame
var handsStream = this.UpdateAsObservable()
.Select(_ => controller.Frame().Hands);

// Stream that fires when the fist gesture ends
var endRockGripStream = handsStream
.Where(hands => !IsRockGrip(hands));

// Camera control
handsStream
// Only when making a fist
.Where(hands => IsRockGrip(hands))
// Get palm position
.Select(hands => ToVector3(hands[0].PalmPosition))
// Buffer current and previous values (2 values with step 1)
.Buffer(2, 1)
// Calculate movement vector from the difference
.Select(positions => positions[1] - positions[0])
// Log the movement
.Do(movement => Debug.Log("Movement: " + movement))
// Clear the buffer when the fist gesture ends
.TakeUntil(endRockGripStream).RepeatUntilDestroy(this)
// Move the camera
.Subscribe(movement => transform.Translate(-speed * movement));
}

/** Check if hand is making a fist */
bool IsRockGrip(List<Hand> hands)
{
return
// One hand detected
hands.Count == 1 &&
// All fingers are closed (none extended)
hands[0].Fingers.ToArray().Count(x => x.IsExtended) == 0;
}

/** Convert Leap Vector to Unity Vector3 */
Vector3 ToVector3(Vector v)
{
return new Vector3(v.x, v.y, -v.z);
}
}









About UpdateAsObservable



This converts Unity's Update() into a reactive stream.



This article explains it in detail:

UniRx Introduction Part 4 — Converting Update to a Stream






About IsRockGrip



This method detects whether the hand is in a fist shape.



First, hands.Count checks that Leap Motion detects exactly one hand. Then, hands[0].Fingers.ToArray().Count(x => x.IsExtended) counts how many fingers are extended. If the count is 0, we treat it as a fist.



This technique was inspired by:

Rock-Paper-Scissors Recognition with Leap Motion + Unity






About ToVector3




  • Leap Motion uses a right-handed coordinate system

  • Unity uses a left-handed coordinate system



To compensate for this difference, we flip the sign of the z-coordinate.






About TakeUntil



TakeUntil is used to discard the buffer when the fist gesture ends.



Without this, the last palm position before the fist ended would remain in the buffer. The next time you make a fist, the camera would jump suddenly due to the stale buffered value.



This technique was referenced from:

UniRx: Building Pinch In/Out Quickly






Closing



With two hands, you could probably implement pinch-to-zoom as well. I'd like to try that next!

SOC Incident Playbook: Vulnerability Remediation & Verification
Syntax validiert (0 Fehler)
title: Detect Exploitation - [LeapMotion + UniRx] Moving a Camera with Hand Gestures
id: 728df4e7-29d3-4a1b-837c-b5df36e8c548
status: experimental
description: Automatisch generierte SIEM-Erkennungsregel basierend auf CTI Intelligence
references:
  - https://tsecurity.de/
author: iShareStuff CTI Automated Detection Engine
date: 2026-09-25
logsource:
  category: network_connection
  product: any
detection:
  selection:
      CommandLine|contains:
        - 'exploit'
  condition: selection
falsepositives:
  - Legitime administrative Zugriffe oder Penetrationstests
level: high
tags:
  - attack.initial_access
Syntax validiert (0 Fehler)
rule CTI_Threat_Indicator {
    meta:
        author = "iShareStuff CTI Automated Detection Engine"
        date = "2026-09-25"
        description = "YARA Signature for "
    strings:
        $str = "[LeapMotion + UniRx] Moving a " ascii wide
    condition:
        any of them
}
Syntax validiert (0 Fehler)
index=security sourcetype IN ("cisco:asa", "pan:traffic", "zeek_conn", "suricata", "WinEventLog:Security")
("LeapMotion  UniRx Moving a Camera with H")
| stats count earliest(_time) as first_seen latest(_time) as last_seen by src_ip, dest_ip, dest_host, signature
| eval first_seen=strftime(first_seen, "%Y-%m-%d %H:%M:%S"), last_seen=strftime(last_seen, "%Y-%m-%d %H:%M:%S")
| sort - count
Syntax validiert (0 Fehler)
message: "*LeapMotion  UniRx Moving a Camera with H*"
Syntax validiert (0 Fehler)
CommonSecurityLog
| where Message has "LeapMotion  UniRx Moving a Camera with H"
| summarize EventCount = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated) by SourceIP, DestinationIP, DestinationPort, Activity
| extend DetectionRule = "iShareStuff-CTI-Compiled"
| sort by EventCount desc
🎯
MITRE ATT&CK Matrix Navigator 14 Taktiken
Reconnaissance
-
Resource Development
-
Initial Access
Execution
Persistence
-
Privilege Escalation
Defense Evasion
Credential Access
-
Discovery
-
Lateral Movement
-
Collection
-
Command and Control
Exfiltration
-
Impact
tsecurity.de Cognitive Threat RAG
Fokus-Vektor:

Kognitive Analyse für identifizierte Bedrohung: Erhöhte Bedrohungslage im Bereich [LeapMotion + UniRx] Moving a Camera wit.... Basierend auf 368k Vektor-Korrelationen werden sofortige Isolationsmaßnahmen für betroffene Endpunkte empfohlen.

🛡️ Angriffsfläche & Exposure

Netzwerk/Remote-Zugriff ohne Vorauthentifizierung möglich.

⚡ Empfohlene Sofortmaßnahmen
  • 1. Perimeter-Inspektion: Relevante Portfreigaben und exponierte Endpunkte unverzüglich scannen.
  • 2. Patch-Applikation: Hersteller-Hotfix einspielen oder betroffene Daemons in isolierte DMZ-Segmente überführen.
  • 3. Telemetrie & EDR-Alerts: Prozessaufrufe und Child-Processes auf anomale Shell-Spawns überwachen.
🔗 Semantisch verwandte Zero-Days MariaDB 11.7 VEC
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten [LeapMotion + UniRx] Moving a Camera with Hand Gestures

Thematisch verwandte Begriffe: LeapMotion, UniRx, Moving, Camera · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-87722 | Uncontrolled Resource Consumption (CWE-400 / CWE-1333) in regex search q…
Advisory →
tsecurity.de Icon
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel • Rechts: nächster Artikel • unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel TTP ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...
↗ Original-Quelle