HandDriver Web Deployment and Usage Guide
1. Overview
1.1. Function Overview
HandDriver Web adopts B/S architecture, supporting access to the graphical interface through a browser on a PC. The browser can be closed once the DataGlove is properly connected. It is suitable for applications in the robotic field (the interface language currently only supports English).
During use, the receiver is connected to the PC where the server is located. The distance between the DataGlove and the receiver should not be too far, ideally kept within 2-3 meters, with a maximum range of approximately 5 meters.
Only supports 1-To-2 receiver DataGlove.
Compared to the HandDriver, the following features have been removed:
FBX/BVH recording and its related configuration options;
Thumb root joint adjustment;
Firmware upgrades (if the firmware upgrade is required, it is recommended to download the Windows version. Note: always upgrade the DataGlove first, the upgrade the receiver.)
1.2. Environmental Requirements
Google Chrome is recommended.
Only supported in Ubuntu currently. Please pay special attention to the Ubuntu version requirements for different software versions.
2. Software Download
Server installation package (Regular below refers to the standard version):
Web client installation package:
3. Software Environment Deployment and Execution
It is recommended to deploy and start the server first, then deploy and run the web client.
3.1. Server Deployment and Startup
3.1.1. Important Notes
When deploying the server, follow the operations described in the "Standard Version" section of this document. However, if using an authorized version related to dexterous hands, be sure to first review the operation instructions for the relevant dexterous hand version (including the License Key instructions).
3.1.2. Paxini Dexterous Hands Authorized Version
The Paxini authorized version only supports operation in Ubuntu 22. The Paxini authorized version requires an License Key and corresponding software package provided by Udexreal to be used.
If using the version that supports Paxini dexterous hand, the following steps must be performed first.
Install dependencies (if batch installation is not possible, they can also be installed individually)
sudo apt update && sudo apt install -y build-essential libboost-all-dev libopencv-dev libspdlog-dev libfmt-dev libgoogle-glog-dev libopenblas-dev libdlib-dev libjsoncpp-dev libfltk1.3-dev libyaml-cpp-dev python3-pip python3-dev cmake vim git If error occurs during the process, execute the following command, then run the dependency installation again. Repeat this cycle until all the above dependencies are installed.
sudo apt --fix-broken installSave the server installation package HDService.zip in any directory of your system, extract it, then navigate to the HDService directory, open a terminal, and enter the following commands in sequence.
sudo dpkg -i DexHandSDK-1.2.1-Linux.deb
sudo tar -xzf gsl.tar.gz
# Enter the gsl directory
cd gsl
sudo ./configure CFLAGS="-g -O0"
sudo make -j4
sudo make install
# Back to the HDService directory
cd ..
sudo tar -xzf eigen-3.3.7.tar.gz
# Enter the eigen-3.3.7 directory
cd eigen-3.3.7
sudo mkdir build
# Enter the build directory
cd build
sudo cmake ..
sudo make installAt this point, the operations required to support the Paxini dexterous hand are completed. Please proceed to refer to the Standard Version deployment instructions.
3.1.3. Standard Version (the Regular, Non-dexterous Hand Authorized Version) Deployment and Startup
Save the server installation package HDService.zip in any directory of your system, extract it, then navigate to the HDService directory, open a terminal, and enter the following commands in sequence.
3.1.3.1. Operations for Different Ubuntu Versions
3.1.3.1.1. Ubuntu22
There are no other special operations. Proceed directly to to the conventional steps described below.
3.1.3.1.1. Ubuntu24
Perform the following operations in the HDService directory.
sudo dpkg -i libprotobuf23_3.12.4-1ubuntu7_amd64.deb3.1.3.2. Conventional Steps
Enter the HDService directory, open a terminal, and enter the following commands in sequence.
sudo cp 80-usb-serial.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm triggerUpdate local dependency libraries
sudo ldconfigFinally, execute the following commands in the HDService directory to complete the server deployment and service startup.
./HDService3.2. Web Client Deployment and Operation
Web client deployment refers to Unity WebGL + Nginx (Ubuntu) deployment. It is recommended to place the Web client on the same computer as the server, so the deployment only needs to be done once.
3.2.1. Environment Preparation
Update the system and install the Nginx:
sudo apt update
sudo apt install -y nginxCreate the Web client deployment directory, such as
/var/www/handdriver, and copy all files from the unzipped HDWebClient.zip to this directory.

Ensure the
server-config.jsoncontent is correct, for example:
{
"serverUrl": "ws://192.168.5.215:7789" //This ip is the address where the server is located.
}If using UFW or other firewalls, open the port 80 (or 443):
sudo ufw allow 'Nginx Full'
3.2.2. Nginx Configuration
Create a new site configuration: Use the command
sudo vim /etc/nginx/conf.d/handdriver.conf(if vim is not available, use nano for writing) to create a configuration file, and write the following content into it:
server {
listen 8080; # This listening port can be set according to your actual situation.
server_name 192.168.5.215; # The actual IP or domain name where the server is located, same as the address where the Web client resides.
root /var/www/handdriver; # Actual Web client deployment directory.
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location = /server-config.json {
default_type application/json;
add_header Cache-Control "no-cache, must-revalidate";
add_header Access-Control-Allow-Origin "*" always;
add_header Access-Control-Allow-Methods "GET, OPTIONS" always;
add_header Access-Control-Allow-Headers "Content-Type" always;
try_files /server-config.json =404;
}
location /Build/ {
add_header Cache-Control "no-store";
try_files $uri =404;
}
location /TemplateData/ {
try_files $uri =404;
}
access_log /var/log/nginx/handdriver_access.log;
error_log /var/log/nginx/handdriver_error.log;
}Modify the
nginx.conffile
sudo vim /etc/nginx/nginx.conf (use nano for writing if vim is not available)
Change the first line user www:data to user root
Enable the site and verify the configuration
sudo nginx -tApply the new configuration
sudo systemctl reload nginx3.2.3. Permissions and Deployment
When updating the version, simply replace the files in the Web client deployment directory (e.g., /var/www/handdriver) and execute sudo systemctl reload nginx again.
3.2.4. Verification and Operation
(This step is optional) Use
curl http://192.168.5.215:8080/server-config.json(replace with the actual IP/domain and port) to check if the JSON is accessible and if the response headers meet expectations.Open a browser and visit
http://192.168.5.215:8080/(replace with the actual IP/ domain and port) to confirm that the WebGL page loads properly. Once verified, the HandDriver Web is ready to run.If HTTPS is required, configure the certificate (e.g., using Let's Encrypt) as needed and replace the listening port
listen 8080with the correspondinglisten 443 sslsettings.
4. Precautions
When multiple Web clients are connected to the same server, operations performed on one client (such as Calibration or Data Trans setting) will be synchronized to all other clients.
Data transmission: Data generated by each character is packaged independently and send seperately.
If the server crashes, the indicator light on the previously connected DataGlove will remain solid green. The server must be restarted before reconnecting the DataGlove.
The Old Plugin option in the Data Trans function is currently non-functional when selected.
The battery level displayed on the current version's interface does not reflect the actual battery level.
Last updated