VL.Mcro.Devices.SpaceMouse 1.0.0-pre1

This is a prerelease version of VL.Mcro.Devices.SpaceMouse.
dotnet add package VL.Mcro.Devices.SpaceMouse --version 1.0.0-pre1
                    
NuGet\Install-Package VL.Mcro.Devices.SpaceMouse -Version 1.0.0-pre1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="VL.Mcro.Devices.SpaceMouse" Version="1.0.0-pre1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="VL.Mcro.Devices.SpaceMouse" Version="1.0.0-pre1" />
                    
Directory.Packages.props
<PackageReference Include="VL.Mcro.Devices.SpaceMouse" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add VL.Mcro.Devices.SpaceMouse --version 1.0.0-pre1
                    
#r "nuget: VL.Mcro.Devices.SpaceMouse, 1.0.0-pre1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package VL.Mcro.Devices.SpaceMouse@1.0.0-pre1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=VL.Mcro.Devices.SpaceMouse&version=1.0.0-pre1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=VL.Mcro.Devices.SpaceMouse&version=1.0.0-pre1&prerelease
                    
Install as a Cake Tool

VL.Mcro.Devices.SpaceMouse

A port of Open Unreal Space Mouse for vvvv-gamma. This is the third SpaceMouse integration for vvvv as of time of writing. There's one which is working with official drivers, one which is working from HID but with limited device support and this one which is also working with HID but supports all 3DConnexion Space Mice.

The reading loop is done on a separate thread and accumulates all connected space-mice data into a global state. The process nodes are simply reading this state on the main-loop.

This repository can also serve as a template for developing C++/CLI libraries for vvvv with a "totally bareable" developer experience with the help of xmake.

Install

Get it via nuget manager in vvvv. For regular usage the sections below can be ignored.

Build

cd .\cpp

# The extra addons only require manual installation until they're canonized in xrepo. Need to be done only once
xmake addon --install github:microdee/xmake.rats-utils
xmake addon --install github:microdee/xmake.dotnet-cppcli

xmake config -m release -v -D
xmake build

xmake will automatically copy resulting binaries to lib subfolder.

Understanding the workflow

I chose xmake in particular because I grew fond of its focus on developer experience for C++. Especially for its excellent handling of 3rd party libraries and many chores which tend to be painful in other build tools. However xmake itself doesn't know about C++/CLI, that's where dotnet-cppcli addon comes in. It adds the proper compiler flags, gather dotnet runtime assemblies and manages dependencies from nuget. This is already way more than MSBuild does for you.

All C++ sources are found in cpp/src subfolder, and its configuration in cpp/xmake.lua. Build artifacts and intermediate files should also stay inside cpp folder. You can enable adequate auto-complete in VS Code and Visual Studio, both for managed assemblies and regular C++ code, with the following commands:

cd .\cpp

xmake project -k compile_commands .vscode       # VS Code
xmake project -k vsxmake2026 -m "debug,release" # Visual Studio

If you install the xmake VS Code extension it supposedly auto-generate compile_commands.json for you. VS Code is slightly better for developing as it doesn't rely on a virtual project workspace, how a Visual Studio solution would. However attaching a debugger is only working in Visual Studio without much hassle.

Debugging

Configure xmake in debug mode, then build. vvvv must be closed during this.

cd .\cpp

xmake config -m debug -v -D
xmake build

no need to change references in VL file (lib folder should contain the debug binaries now). When attaching a debugger set both Native and Managed modes (or older versions may refer to it as "Mixed Mode" debugging).

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-pre1 51 10/5/2026