XCOMPUTE-CLIENT User Guide#
If you haven’t already, download XCOMPUTE-CLIENT. After installation, you will receive an email containing your XCOMPUTE-CLIENT fingerprint. You can also view your fingerprints in your Account Profile.
1. Request Access#
Unless connecting as a read-only guest (e.g., testing xplicitcomputing.com), send your fingerprint and email address to the administrator of the server host you wish to access. Once approved, the admin will add your endpoint to the server’s users.cfg.
2. Launch & Login#
Starting the Application#
If installed via package manager, launch XCOMPUTE-CLIENT from your OS application menu.
Alternatively, run from terminal:
xcompute-clientor./path/to/xcompute-client
Upon launch, client.cfg is loaded and the login window appears.
Login Process#
Host Address: Enter the server’s DNS name (e.g.,
xplicitcomputing.com) or IPv4 address. If the server runs locally, uselocalhost.Port: The default service port is
11235. Leave blank to use the default.Credentials: Enter your
emailandfingerprint. This is only required once per device/account.Directories: Set default
inputandoutputpaths for easy import/export operations. If unset, defaults to your home directory. Save the configuration.
Note: Update speed depends on network bandwidth and latency between client and server.
3. Interface Overview#
After successful login, interface.cfg is loaded for optional UX settings, and the main interface window appears as metadata and visuals buffer.
Configuration Example (interface.cfg)#
startingTab=0
dpi=100
panSensitivity=50
precision=3
rotateSensitivity=50
timeConstant=50
zoomSensitivity=50
groups=false
loops=false
surfaces=true
volumes=true
The main display window is powered by Qt5. After connecting to XCOMPUTE-SERVER, the client buffers and renders server-side systems. Closing the window terminates the client connection, but simulations continue running server-side. Teammates can reconnect or load from saved states.
4. File I/O#
Operation |
Server Side |
Client Side |
|---|---|---|
Input |
Load from host filesystem |
Import from local machine |
Output |
Save to host filesystem |
Export to local machine |
Save & Load#
Save: Sends a command to the server to write system setup and state to the server’s output directory (e.g., fast SSD).
Load: Instructs the server to read files from its input directory. The client updates automatically once loaded.
No file I/O occurs on the client filesystem during Save/Load; these are server-side operations.
Import & Export#
All file types can be imported/exported to maintain a single source of truth. Files reside on the server alongside their associated systems.
Supported Neutral Formats:
Import:
stl,obj,msh,sdfExport:
csv,vtu,stl,obj,msh,sdf
Native XC-Messages Formats:
xcs,xcg,xco(accessible via cross-language bindings)
External Application Integration#
Any file type can be associated with a shell command. By default, the OS uses open or xdg-open. Customize in extensions.cfg:
vtu=paraview --special-options
xcs=python3 -i path/to/concept_pb2.py
xcg=python3 -i path/to/spatial_pb2.py
xco=python3 -i path/to/vector_pb2.py
py=python3 -i path/to/concept_pb2.py path/to/vector_pb2.py path/to/spatial_pb2.py
Everything after
=is executed as a shell command. No spaces are allowed around=, but spaces are permitted afterward.
5. Visualization & Rendering#
The render scene uses an OpenGL context with a shader pipeline.
Graphics Pipeline#
Current implementation uses an explicit raster pipeline with two programmable stages:
vertex.glsl → fragment.glsl
VAO Layered Processing#
In-scene graphics are organized into Vertex Array Objects (VAOs) and rendered back-to-front:
Layer 0: 3D physical space (metaobjects & metaregions)
Layers 1+: 2D screen-space UX elements (HUD, text, tools)
Metaobjects & Interaction#
Most 3D objects are metaobjects composed of metaregions, representing server-side geometry. Transformations follow the standard M-V-P convention:
MModel: Assigned server-side for metaobjects, client-side for UX elements.VView,PProjection: Managed client-side via the camera, optimized out for 2D.
Interaction:
Click to select metaregions in prep for server-side operations.
Double-click a metaregion to activate its parent metaobject.
Double-click the background to navigate up one hierarchy level.
Selection is currently limited to surfaces and faces.
Camera Controls#
Zoom: Middle mouse wheel or multi-touch swipe
Rotate: Hold middle mouse button, or
Ctrl(Linux)⌘+ drag (macOS)
Press R to print render statistics to the console.
Shader Customization#
Advanced users can modify shaders/vertex.glsl and shaders/fragment.glsl. Press Ctrl+R (or Cmd+R on macOS) to dynamically reload shaders and the scene at runtime.
6. Troubleshooting#
Failed Authentication#
Cause: Expired certificate, corrupt credentials, or unassigned MASH.
Fix:
Clear keys/certs using the button in the Authentication Failure dialog.
Unassign the fingerprint in your Account Profile.
Relaunch the application to request new credentials from XWS.
Failed Login#
Click the Help button on the login screen. Diagnostic dialogs will display error details and suggested actions.
Runtime Errors#
Logs are stored in ~/.local/state/xcompute/xcclient/log/:
# View logs
ls -al ~/.local/state/xcompute/xcclient/log/xcclient-*.log
# View errors
ls -al ~/.local/state/xcompute/xcclient/log/xcclient-*.err
# Open with text editor
vi ~/.local/state/xcompute/xcclient/log/xcclient-VERSION.err