1년 전 API 개편 이후 가장 큰 규모의 업데이트입니다. 3.5.0 버전에서는 통합된 3D 수학 레이어, Minverse에 대한 완벽한 지원, 타입이 지정된 이벤트 스트림, 완전한 설정 API, 그리고 더 간결해진 HTTP 인터페이스를 도입했으며, 지난 1년간의 버그 수정 및 사용 편의성 개선 사항도 함께 포함되었습니다.
주요 내용
통합 3D 수학 레이어 — 장치 기준(프레임), 마운트 변환, 작업 공간 변환 및 내비게이션 변환을 위한 최상위 프리미티브를 갖춘 조합 가능한 변환 파이프라인으로, 로컬, 세션, 애플리케이션 및 내부 공간 간의 명시적 변환 기능을 제공합니다.버블 내비게이션 — 속도 매핑된 속도 제어, 히스테리시스 감지 충돌 탐지, 선택적 커서 방향 이동 기능을 통해 형상 구역(SDF 프리미티브) 내에서 대규모 가상 작업 공간을 탐색할 수 있습니다. HTTP 및 WebSocket을 통해 앱-공간 왕복 통신으로 완벽하게 구성 가능합니다.유형 지정 이벤트 스트림 — 기기 수명 주기, 안전 경고, 보정, 배터리, 제어 속도 경고 및 지원 종료 안내를 위한 전용 WebSocket 이벤트 채널입니다.설정 API — HTTP CRUD, 타입 힌트, 범위 제약 조건 및 설명을 지원하는 완벽한 키-값 설정 시스템으로, 기존의 중첩된 구성 파일을 대체합니다.일관된 장치 구성 — 모든 장치에 대해 하나의 HTTP 경로 세트: 기준, 마운트, 사전 설정, 변환, 필터, 손잡이, 토크 스케일링, 중력 보정, 홈으로 돌아가기.Minverse 동기화 및 펜 보정 — 이제 기기와 펜이 함께 보정되며, 그립이 물리적으로 장착될 때까지 보정 상태가 유지됩니다.생활의 질(QoL) HTTP — 인덱스 기반 디바이스 선택기(ID 없이 인덱스로 디바이스를 지정), WebSocket과 공유되는 통합된 요청/응답 형식, 옵트인 {성공, 오류, 데이터} 봉투 (?format=json), 와일드카드 세션 선택자.새로운 기능
디바이스
Minverse — 이번 릴리스에 공식 지원 기능이 포함되었습니다: 감지, 준비 시퀀스, 안전 알림 및 동기화된 보정 워크플로.루코와 킹피셔가 공식 그립 제품으로 인정받았습니다.장치 시뮬레이터 지원 — 실제 하드웨어와 함께 소프트웨어로 시뮬레이션된 장치를 감지하고 통신합니다.연결 루프 보호 — 문제가 있는 포트는 자동으로 차단됩니다. 다음 명령어로 재설정하세요. POST /ports/{port}/reset.펜 부착 감지 — 데바운스 기능을 통한 안정적인 그립 부착/분리 감지.세션, 명령어 및 WebSocket
세션 프로필 필터링 및 지속성 — 세션은 프로필 이름과 필수 SDK 버전을 선언하며, 서비스는 재연결 시에도 이를 기억합니다. 클라이언트와 모니터링 도구는 해당 프로필을 기준으로 세션을 필터링하고 대상으로 지정할 수 있습니다.세션별 명령어 버퍼 — 더 이상 한 세션의 처리 속도가 느려져도 다른 세션의 진행을 방해하지 않습니다.일회성 명령어를 위한 명시적 `configure` 맵 — 기준, 사전 설정, 마운트, 포스 게이트, 감쇠 기기당, 그리고 프로필 그리고 기준 회당, 이제 모두 설정 — 출력 구성 맵과 일치하므로, 전송한 데이터와 수신한 데이터가 서로 일치합니다.사용자 정의가 가능한 기기 거치대 — 기본 제공 작업 공간 사전 설정을 선택하세요 (기본값, 팔 앞쪽, 팔 앞쪽 중앙, 전면 LED, led_front_centered) 또는 명시적인 변환을 전송하십시오. 수동 마운트 변경 시 사전 설정이 자동으로 사용자 지정.이름이 지정된 명령 필드 — 위치, 벡터, 각도, 토크 일반적인 것을 대체하다 가치 배열.각운동량 설정 대체합니다 각운동량 설정 (단수형은 더 이상 사용되지 않습니다).세션 프레임 확장 — v3.0 및 v3.1 세션 프레임은 이제 확장 가능한 설정, 상태및 상태 개체; 새로운 출력 필드에는 다음이 포함됩니다 현재 커서 강제, 현재 커서 위치, 현재 각속도, 현재 각도 위치, 제어 도메인, 제어 모드, 변환, 변환 속도, 더 풍부한 config.*및 상태.안전 (기본적으로 숨김).부분 변환 업데이트 — 변경하려는 하위 필드만 전송하십시오 (위치, 회전, 규모) 마운트, 작업 공간 변환 및 탐색 모양에 대해.HTTP
GET / — 서비스 버전.GET/POST/DELETE /settings 그리고 /설정/* — 완전한 키-값 설정 API.GET /sessions/{session} 그리고 GET/POST/DELETE /sessions/{session}/profile.GET /devices?session=<selector> — 장치 좌표를 지정된 세션의 애플리케이션 좌표계로 변환합니다.인덱스 기반 장치 선택기 — ID를 알지 못해도 인덱스를 통해 모든 기기를 대상으로 지정할 수 있습니다 (/inverse3/0/... 첫 번째 Inverse3를 위해; inverse... (모든 Inverse 기기에 대해).통합된 요청/응답 형식 — POST/GET 본문은 동일한 명령 데이터 JSON은 WebSocket과 유사한 형태를 띠며, 한 전송 프로토콜을 위해 작성된 코드는 다른 프로토콜에서도 작동합니다.수신 동의용 봉투 출처: ?format=json 어떤 노선에서든; /설정* 그리고 GET /home_return 기본값으로 {성공, 오류, 데이터}. 사용 ?format=plain 원본 형상을 위해.세션 선택자 와일드카드 — * (어떤 순서든) 그리고 ? 프로필 이름에 (단일 문자)가 포함되어 있습니다.퍼센트 해독 선택자 — %2A, %3A등은 라우팅 전에 디코딩됩니다.행사
전용 WebSocket 이벤트 스트림 커뮤니케이션/행사/항구.기기 수명 주기, 안전(전자식 브레이크, 이물질 감지, 스톨), 보정 실패, 배터리 경고, 세션 경고, 낮은/비정상적인 제어 속도, 입력 유효성 검사, 사용 중단 예정 알림 등 총 24가지 유형의 이벤트 범주.관측 가능성
프로파일링 시 Tracy로 전달되는 로그 메시지에 레벨에 따른 색상이 적용됩니다.Tracy는 모든 HTTP 핸들러에 적용됩니다.메인 루프 타이밍 통계 이벤트.로그 디렉터리와 서버 호스트명을 설정할 수 있습니다(Docker 호환).3.6 버전에서 제공될 예정입니다
SDF Haptic Effects(SDF HFX) — 3.5 버전에서 기반 기능(모듈, 라이프사이클, 모듈에서 제공하는 명령어/상태 직렬화)이 구현되었으며, 3.6 버전에서는 공식 API와 함께 완전한 문서화가 제공될 예정입니다.개선 사항
필터링된 힘 진동 — 축별 진동 감지, 8단계 단계별 복구, 히스테리시스 기능이 적용된 입력 확인, 비대칭 릴리스 windows.실행 시 강제 게이트 필터 — 다음을 통해 설정 가능 configure.force_gate.gain WebSocket 또는 HTTP를 통해, 지속적 연결을 기본값으로 설정하여.정밀도 요구가 높은 응용 분야를 위해 메인 루프의 최대 주파수를 32kHz로 높였습니다.더 작은 WebSocket 페이로드 — identity-default 변환 하위 필드 (위치 = 0, 회전 = 신분 변환, 축척 = 1)는 기본적으로 출력에서 제외되어 페이로드 크기를 줄이고, 구형 Unity 패키지의 4KB 메시지 제한과의 호환성을 유지합니다. 두 가지 고급 설정(직렬화/명시적 필드, 직렬화/변환 강제 완료) 필요한 사용자를 위해 모든 필드를 다시 활성화합니다.메인 루프 지터 감소 — JSON 파싱 및 네트워크 전송 중 WebSocket 메시지 처리가 더 이상 메인 루프 틱을 차단하지 않으며, 세션 틱 스케줄링이 응답 직렬화 단계보다 앞당겨졌습니다.서버는 기본적으로 localhost에서만 작동합니다 — 다음을 통해 네트워크 액세스 허용 통신/모든 인터페이스 바인딩 설정.장치 선택기 와일드카드는 접두사 구문을 사용합니다 (예: inverse ( Inverse 계열의 모든 기기에 해당합니다).감쇠 명령 ~로 이사했다 설정 옆에 있는 지도 포스 게이트.회전식 파일 로거는 이전 버전을 대체하며, 디렉터리를 사용자 지정할 수 있습니다.모듈에서 제공하는 명령어 및 상태 — 모듈은 핵심 스키마를 변경하지 않고도 자체 명령어, 구성 필드 및 상태 출력을 WebSocket 프레임에 삽입할 수 있습니다.수정 사항
지난 1년간의 버그 수정 내역입니다. 가장 중요한 내용은 다음과 같습니다.
특정 조건에서 세션 속도가 불안정합니다.시뮬레이션이 실행 중이지 않을 때 GripHook(Verse Grip Stopper)이 제대로 해제되지 않았습니다.Inverse3의 타임아웃 설정이 너무 엄격하여 부팅 속도가 느린 기기에서 연결 끊김 현상이 반복적으로 발생했습니다. Windows 서비스 중지 오류 — 시스템 종료 시 HTTP 서버가 항상 정상적으로 정리되지 않았습니다.서비스가 구형 펌웨어 버전에 지원되지 않는 명령을 전송했을 때 발생하는 재연결 루프.블루투스 장치 열거 작업으로 인해 블루투스 어댑터가 장착된 시스템의 로그가 넘쳐났다.서비스를 연속으로 여러 번 다시 시작하면 충돌이 발생합니다.Ubuntu 노트북에서 절전 모드 후 재개 시 Wireless Verse Grip 동글이 멈추는 현상.이제 Linux 및 macOS에서 Wireless Verse Grip 핸드셰이크가 첫 번째 감지 시도가 실패할 경우 올바르게 대체 방식으로 전환됩니다.macOS 설정 파일 위치 — 설정은 이제 다음 위치에 저장됩니다. ~/Library/Application Support/ 잘못된 길 대신에.Linux 및 macOS에서의 SIGSEGV 신호 처리 — 멀티스레드 크래시 캡처가 활성화된 경우, 치명적인 신호가 발생해도 프로세스가 더 이상 무한 루프에 빠지지 않습니다.세션 간 명령어 덮어쓰기 — 이전에는 한 세션의 구성 명령어가 다른 세션의 명령어로 아무런 경고 없이 대체될 수 있었으나, 이제 이러한 명령어가 필터링되어 올바르게 병합됩니다.프로브 명령어가 구성 설정을 덮어쓰고 있습니다 — 모니터링 세션(예: Haply ) 전송 탐침 위치 더 이상 보류 중인 기본값/사전 설정/프로필 변경 사항을 자동으로 덮어쓰지 않습니다.프로토타입 그립 표시 — 프로토타입 하드웨어가 사용자 지정 그립이 아닌 표준 그립으로 잘못 표시되었습니다.이전 버전의 `set_basis` 행렬 규칙을 따르지 않았던 클라이언트에 대해 해당 규칙이 다시 적용됩니다.세션이 끊어질 때 발생하는 역방향 3단계 킥이 더 이상 잔류 힘의 급격한 상승을 유발하지 않습니다.빠른 연결 및 끊기 주기가 반복될 때 WebSocket 연결이 끊어지는 경합 현상이 발생합니다.WebSocket `session_id` 다음과 같이 연재되었다 0 일부 발신 페이로드에서.Windows에서는, --로그 수준 이제 다음을 결합할 때 적용됩니다 --dev (이전에는 자동으로 재설정되었으나 디버그).사용 중단
아직은 작동하지만, 향후 주요 버전에서 제거될 예정입니다. 응답에는 다음이 포함됩니다. 사용 중단 경고 해당되는 경우 해당 필드.
| 사용 중단됨 | 대체 항목 |
|---|---|
| POST /force_scale | POSTinverse |
| 게시물 /중력_보정 | POST /{device}/{id}/config/gravity_compensation |
| 게시물 /토크_스케일링 | POST /{device}/{id}/config/torque_scaling |
| POST /device_handedness | POST /{device}/{id}/config/handedness |
| POST /serial_enable | POST /settings/communication/serial/enabled |
| POST /experimental/features/grip_dropped_simulation_stopper | 설정 API |
| POST /experimental/features/screensaver_enable | 설정 API |
| WebSocket command_data.values | 위치, 벡터, 각도, 토크 |
| WebSocket 각운동량 설정 | 각운동량 설정 |
| WebSocket 포인터 위치 | 탐침 위치 |
| WebSocket 좌표 원점 설정 | configure.preset |
| WebSocket 세션 수준 기저 설정 | configure.basis |
호환성 관련 참고 사항
3.4.19 버전과 비교해 중대한 호환성 변경 사항은 없습니다. 기존 통합 기능과 관련하여 두 가지 참고 사항이 있습니다:
더 이상 사용되지 않는 HTTP 엔드포인트에는 이제 사용 중단 경고 응답의 해당 필드 — 응답 스키마를 엄격하게 검증하는 클라이언트는 이 추가 필드를 허용해야 합니다.그리고 가치 WebSocket의 필드 명령 데이터 이 기능은 더 이상 권장되지 않지만 여전히 구문 분석됩니다. 명명된 필드를 사용하는 것이 좋습니다.튜토리얼 및 문서
새로운 튜토리얼: 05 위치 제어, 06 복합 기능 (Inverse3 + Verse Grip), 07 베이스 및 마운트, 08 HTTP 원격 구성기, 09 WebSocket 원격 제어, 10 이벤트 스트림 리스너.새로운 글레이즈 변형 모든 C++ 튜토리얼에서 (cpp-glz/) 기존 nlohmann/json 변형과 함께.모든 튜토리얼을 새로 작성했습니다 v3.1 API용 (포트 10001, configure.preset, 명명된 명령 필드, print_state() (도움말).기존의 Verse Grip Stopper 튜토리얼을 삭제하고, 새로운 통합 튜토리얼로 대체했습니다.SDK 가이드, API 참조 문서 및 하드웨어 페이지 전반에 걸쳐 공개 문서가 업데이트되었습니다.