Czy gest dłoni może zastąpić pokrętło? Co pokazał prototyp ControlAnything
ControlAnything pisze kod połączenia, gdy poprosisz o nowy gest w rzeczywistości mieszanej. Syntezator, gimbal i jedna sesja w goglach pokazują, co dało się potwierdzić w prototypie.
Wyobraź sobie, że trzymasz rękę nad syntezatorem i prosisz gogle, aby wysokość palców odpowiadała częstotliwości odcięcia filtra. Wiesz, co ma robić gest. Trudniejsze jest połączenie ruchu dłoni z rzeczywistym pokrętłem, zwłaszcza gdy instrument komunikuje się przez MIDI, a gogle widzą tylko pudełko na biurku.
ControlAnything, prototyp badawczy opisany w preprincie Bektura Ryskeldieva z 5 listopada 2026 roku, przenosi część pracy integracyjnej na moment zgłoszenia prośby. Osoba w goglach Meta Quest 3 wybiera obiekt i podaje polecenie, po czym agent na MacBooku tworzy kod połączenia. W odpowiedzi może zwrócić wirtualne elementy sterujące, program odczytujący ruch dłoni albo obie rzeczy. Projekt udostępnia kod i pokazy, w tym symulację na komputerze.

Nagranie Bektura Ryskeldieva z Quest 3 pokazuje wygenerowane elementy sterowania OP-1 Field w trakcie oceny. Telli.sh przeskalował stopklatkę. Preprint i oryginalna klatka · Informacja o licencji MIT materiału wideo
Ciekawy wynik to możliwość utworzenia w goglach nowego sterowania do określonego zadania. Otwarte pozostaje pytanie, skąd system wie, co naprawdę się stało. Potwierdzenie MIDI, reakcja wirtualnego pokrętła i zmiana brzmienia syntezatora to trzy odrębne dowody.
Wskazanie urządzenia rozpoczyna żądanie
Prototyp łączy klienta WebXR, serwer na laptopie, agenta programistycznego i kilka sposobów komunikacji z urządzeniami. SAM 3.1 obrysowuje potencjalne obiekty w widoku gogli. Gest zsunięcia palców może nadać obiektowi etykietę, a Muse Spark może zasugerować jego tożsamość. Preprint traktuje tę sugestię jako hipotezę do zestawienia z nazwą portu MIDI lub odpowiedzią urządzenia. Etykieta pozwala wskazać obiekt w poleceniu. Laptop działa na nim za pośrednictwem portu, mostka przeglądarki lub mechanizmu wysyłania naciśnięć klawiszy. Preprint ControlAnything, sekcje 3–4
Droga od wybranego urządzenia do widocznego lub słyszalnego wyniku. Ilustracja Telli.sh.
Etykieta działa trochę jak zawieszka na bagażu. Pomaga nazwać rzecz, którą chcesz przesunąć, ale trasę i miejsce docelowe trzeba ustalić oddzielnie. Sesja prototypu z 5 listopada dobrze pokazuje tę różnicę. Wszystkie prośby kierowano do etykiety MacBooka utworzonej wcześniej przez autora. Jeśli celem był syntezator OP-1 Field lub gimbal DJI Osmo Mobile 4, autor nazywał go w żądaniu. Sesja mówi więc o łączeniu z urządzeniami, do których system znał drogę. Wybór wcześniej nieznanego syntezatora lub gimbala w widoku gogli pozostaje tematem osobnego eksperymentu.
Jeszcze przed pierwszym gestem system dysponował użytecznymi informacjami. Projekt dokumentuje komunikację przez MIDI, Bluetooth i naciśnięcia klawiszy. W zachowanych notatkach agenta już przed sesją były nazwa portu OP-1, numery kontrolerów filtra i instrukcja poruszania gimbalem. Obraz z kamery podpowiada, że obiekt wygląda jak syntezator. Wcześniejsze dane mówią programowi, jaką wartość wysłać, gdzie ją wysłać i jak utrzymać ją w założonym zakresie.
Model raz tworzy sterowanie, a program dłoni działa wielokrotnie
Prototyp oddziela kosztowne tworzenie interakcji od wielokrotnego wykonywania gotowego programu. Polecenie głosowe jest przepisywane, agent tworzy połączenie, a serwer sprawdza, czy działa ono poprawnie i czy każdy zwrócony element sterowania jest powiązany z zadeklarowaną akcją. Program dłoni odczytuje w każdej klatce sygnały wyprowadzone z położenia stawów i emituje wartości lub zdarzenia. Model działa na etapie konfiguracji. Gogle uruchamiają jego program, gdy poruszasz ręką. Implementacja opisana w preprincie
Przy ciągłym sterowaniu dźwiękiem lub kadrem kamery różnica ma znaczenie. Gdyby model językowy musiał ustalać każdą kolejną wartość, każda klatka oznaczałaby następną powolną decyzję. Mały program może przeliczyć wysokość dłoni na parametr, ograniczyć zakres i zareagować na zwolnienie gestu. Dla pojedynczej czynności, na przykład przejścia do kolejnego filmu, może wymagać celowego ruchu i poczekać na powrót dłoni do pozycji neutralnej przed ponownym przyjęciem sygnału. To przykłady tego, co można zaprojektować tą metodą, odrębne od zachowań zmierzonych w prototypie.
Preprint podaje medianę czasu konfiguracji 32,5 sekundy dla dziewięciu żądań, które osiągnęły stan gotowości. Czasy wyniosły od 24,9 do 57,8 sekundy. Pomiar zaczynał się wraz z obsługą żądania przez serwer i pomijał transkrypcję mowy. Wywołania modelu odpowiadały za medianę 89,9% czasu konfiguracji. Autor zaznacza również, że sesja nie mierzyła czasu między ruchem dłoni a reakcją urządzenia. Wyniki preprintu
Liczby pozwalają oszacować koszt elastyczności. Pół minuty może być do przyjęcia, gdy zastępuje kod połączenia, którego napisanie zajęłoby całe popołudnie i który ma służyć przez całą próbę. Trudniej to uzasadnić przy czynności, którą obecny pilot wykona w pięć sekund. Najbardziej obiecujące są zadania, w których z danego sterowania korzysta się wielokrotnie po jednorazowej konfiguracji.
Wyniki wskazują też możliwy kierunek rozwoju. Dwie podobne prośby o sterowanie symulacją wody zajęły 31,6 i 32,5 sekundy, bo każda utworzyła nowy kod połączenia. Pamięć podręczna poleceń obsłużyła 91,7% tokenów wejściowych sesji, ale wcześniejsze połączenie nie stało się gotowym elementem sterowania do ponownego użycia. Zapisanie sprawdzonego mapowania i umożliwienie użytkownikowi ponownego wyboru obniżyłoby inny składnik kosztu konfiguracji. Wymagałoby też zarządzania wersjami, bo ponownie użyte połączenie zakłada to samo urządzenie, konto i zakres, dla których je sprawdzono.
Pokrętło filtra, gimbal i przeglądarka wymagają różnych potwierdzeń
W sesji 5 listopada uczestniczyła jedna osoba, autor, który wysłał dziesięć żądań dotyczących pięciu obiektów. Dziewięć osiągnęło stan gotowości, a pozostałe zostało zatrzymane przez użytkownika. Był to techniczny eksperyment rozpoznawczy. Żądania formułowano swobodnie, niektóre powtarzały wcześniejsze cele, a system korzystał z uprzedniej wiedzy o urządzeniach. Liczby opisują tę sesję. Szansa na połączenie z nieznanym urządzeniem przez osobę korzystającą z systemu po raz pierwszy to osobny pomiar. Tabela i metoda w preprincie
| Przykład z sesji | Wynik wygenerowanego sterowania | Co potwierdza wykonanie akcji |
|---|---|---|
| Filtr OP-1 Field | Żądanie pokręteł filtra dało dwa elementy sterujące przez MIDI | Zmiana dźwięku instrumentu zarejestrowana przy kontrolowanym wejściu lub stwierdzona podczas odsłuchu |
| DJI Osmo Mobile 4 | Program dłoni i cztery elementy sterujące komunikowały się z gimbalem przez mostek Bluetooth | Zaobserwowany ruch lub zweryfikowany odczyt położenia w założonym zakresie |
| Instagram Reels w Chrome | Żądanie gestu dało program dłoni i trzy elementy sterujące używające symulowanych naciśnięć klawiszy | Zmienia się właściwa karta lub pozycja, a pozostałe okna pozostają bez zmian |
Potwierdzenie warstwy komunikacji i pomiar skutku odpowiadają na różne pytania. Ilustracja Telli.sh.
Weźmy syntezator. MIDI może przenieść poprawne polecenie filtra, choć instrument używa programu reagującego inaczej lub ma wyłączony odbiór MIDI. Preprint opisuje wcześniejszy przypadek, w którym komunikaty otrzymywały potwierdzenie, a dźwięku nie było do czasu włączenia odbioru. Nagranie słyszalnej zmiany przy znanej nucie testowej daje więcej informacji niż kolejny egzemplarz tego samego wpisu w logu.
Gimbal pokazuje podobną rzecz w innej postaci. Mostek zapisał podczas sesji 889 pomyślnych odpowiedzi związanych z obrotem, w tym polecenia zatrzymania i zwolnienia. To dowód, że warstwa komunikacji przyjmowała polecenia podczas dłuższej interakcji. Logi nie zawierały wiarygodnego kąta. W kolejnym teście można wybrać bezpieczny cel i porównać zadany kąt z nagraniem lub znacznikiem odniesienia. Dopiero wtedy można ocenić, czy ruch był dokładny, powtarzalny i ograniczony zgodnie z planem.
Sterowanie klawiaturą wprowadza problem tożsamości celu. Naciśnięcie klawisza może się udać na poziomie systemu operacyjnego, choć trafi do niewłaściwego okna. W teście przeglądarki sprawdź aktywną kartę, oczekiwaną zmianę treści i brak zmian w innych oknach. Im bardziej abstrakcyjny interfejs połączenia, tym bardziej przydaje się jasna definicja wykonanej czynności.
Zatrzymanie musi działać, zanim ktoś zaufa gestowi
Ścieżka zatrzymania w ControlAnything jest niezależna od modelu. Użytkownik może zatrzymać generowanie, wyciągnąć obie dłonie w trakcie działania albo skorzystać z elementu w menu na nadgarstku. Host może wyłączyć kod połączenia i wysłać polecenia przywracające neutralny stan, na przykład zatrzymać gimbal lub zwolnić stan MIDI. Program dłoni działa na goglach w ograniczonym środowisku, a przed wdrożeniem jest sprawdzany na 480 syntetycznych klatkach. Implementacja ogranicza również zadeklarowane akcje i zakresy wartości, które program może emitować. Bezpieczeństwo i zatrzymanie w preprincie
Kod połączenia na laptopie działa na innych zasadach. Preprint opisuje go jako zwykły proces Node uruchamiany z uprawnieniami użytkownika laptopa. Prototyp nie izoluje wygenerowanego procesu. SDK może ograniczać polecenia wysyłane przez obsługiwaną ścieżkę, ale kod ogólnego przeznaczenia nadal ma uprawnienia konta, na którym działa. Wersja produkcyjna potrzebowałaby kontroli uprawnień procesu na poziomie systemu operacyjnego i dostępu tylko do urządzeń potrzebnych do wykonania żądania.
Wyobraź sobie instalację z dwoma ruchomymi urządzeniami. Panel z etykietą tylko jednego może wyglądać uspokajająco, ale ważne jest, czy kod nadal może znaleźć i uruchomić drugie. W bezpiecznym pokazie osiągalne jest jedynie urządzenie poddawane próbie. Zatrzymanie sprawdza się osobno, operator ma miejsce, by się odsunąć, a pokaz obejmuje utratę śledzenia i odłączenie urządzenia.
Ta sama różnica dotyczy wygenerowanego kodu odczytującego otoczenie. Prototyp poleca modelowi traktować tekst w obrazie kamery i odpowiedziach narzędzi jako dane. Polecenie może ukierunkować zachowanie, a zakres uprawnień procesu i dostępnych kanałów komunikacji określa skutki ewentualnego błędu. Przed podłączeniem rzeczywistych urządzeń lub aktywnych kont do laptopa warto rozpatrzyć te pytania osobno.
Zacznij od symulacji i ogranicz zakres próby
README projektu opisuje symulację na komputerze, która wymaga Node 22.12 lub nowszego i Chrome. Według projektu bez klucza API serwer odtwarza zarejestrowane odpowiedzi w wyraźnie oznaczonym trybie testowym. Pozwala to zobaczyć drogę od oznaczonego obiektu do wygenerowanych pokręteł bez gogli, wywołań modelu i sprzętu fizycznego. Zarazem wiadomo, co test obejmuje. Odtworzenie pokazuje znaną ścieżkę w interfejsie. Ocena na żywo zaczyna się po zmianie urządzenia, gestu lub odpowiedzi modelu. Instrukcja demonstracji ControlAnything
- Przeczytaj instrukcje repozytorium i uruchom opisaną symulację w środowisku, które można potem usunąć. Otwórz symulator i emulator gogli, a następnie oznacz symulowany laptop, na którym działa wirtualny syntezator.
- Wybierz dostarczone żądanie pokręteł i potwierdź, że widać wskaźnik trybu testowego. Zobacz, jak interfejs przedstawia wybrane urządzenie i kiedy pokazuje wygenerowane elementy.
- Zmień położenie wirtualnego pokrętła, sprawdź skutek na symulowanym celu i przetestuj udokumentowane zatrzymanie. Oddziel to, co widać w interfejsie, od tego, co podają logi połączenia.
- Do późniejszego pokazu fizycznego wybierz urządzenie o niskim ryzyku i odwracalnym sterowaniu. Przed wysłaniem polecenia zapisz oczekiwany efekt. Zapewnij niezależny sposób zobaczenia lub usłyszenia zmiany oraz zatrzymania urządzenia.
Na warsztatach zacznij od wirtualnego syntezatora wizualnego, zanim wybierzesz funkcję otwierającą prawdziwą usługę lub wysyłającą klawisze na maszynie gospodarza. README wyraźnie oddziela ścieżkę Instagram Reels od przykładu symulowanego. Jeśli chcesz zrozumieć mapowanie, ograniczony lokalny cel ułatwia obserwację.
Po przejściu do rzeczywistego sprzętu mierz czas konfiguracji i jakość sterowania oddzielnie. Zmierz czas do gotowości. Obserwuj opóźnienie między gestem i skutkiem, ewentualny dryf po opuszczeniu obszaru śledzenia i to, co dzieje się, gdy użytkownik zmieni zdanie. Dłuższe badanie może też odpowiedzieć, czy osoba widząca interfejs po raz pierwszy wybierze właściwy obiekt bez pomocy.
Użyteczne sterowanie można stworzyć i sprawdzić
Najciekawszy pomysł ControlAnything pozwala opisać fizyczną interakcję bez wcześniejszego projektowania osobnego interfejsu. Ocena pokazuje działanie na znanym zestawie obiektów i jednych goglach. Wielokrotnie używane sterowanie wymaga też prawidłowej identyfikacji urządzenia, ograniczenia uprawnień i tak czytelnego skutku, aby osoba w goglach mogła ocenić, co rzeczywiście się wydarzyło.
Źródła
- Preprint ControlAnything złożony 5 listopada 2026
- Pełny opis implementacji, oceny i ograniczeń
- Repozytorium projektu, pokazy i instrukcja symulatora
Aby później łatwo znaleźć notatki i decyzje z pracy nad prototypem, załóż konto Telli.sh.