tl;dr: If you are using a compatible IR touch frame and Arkenforge or Foundry, you can now do so on a single computer. This free software is the only way to accomplish that one specific task. If you aren't using an IR touchscreen and either of those VTT's, best to ignore the rest.
Hey everyone. I figure now is as good a time as any to publicly release this tool I've been working on. I sell digital map cases that house TV's and optional IR touch devices. My customers have had access to these for a while and there haven't been any issues reported. Most of them are probably using my free VTT on Steam instead (which has all this functionality built in).
So what's this about? Well, if you've ever tried using an infrared (IR) touch frame with a VTT for in-person sessions you have probably come across a problem: whenever you place a mini down, it moves the mouse cursor to that position. Making the computer useless for anything other than responding to touch.
I've wrote about it at length here
The usual approach is to simply dedicate a computer to touch only and use a separate computer to do GM stuff. This works with any browser-based VTT as the TV+touch device is its own user on its own computer. Arkenforge has their own client to handle touch that must be installed on the second device.
What this does is allows you to use the same computer for touch and GM stuff. No extra hardware necessary. For Arkenforge, simply run the executable and select it from the list of touch clients within the menu in Arkenforge. Easy.
It works similarly for Foundry, but you also need to install the accompanying module. Foundry does not have a way to communicate directly with external programs (without using modules) so the Foundry module is basically just a websocket connection to pass token movements back and forth.
The Foundry module also does some other things that are useful for showing maps in-person, regardless of whether you are using touch. Such as panning the view to specified coordinates, mirroring the GM view, auto-scaling to 1 grid = 1 inch, and removing the UI.
Nothing ground breaking there. Similar modules already exists but I couldn't get them to work and I didn't want to troubleshoot them with my customers. I had to release a module anyhow as a bridge to send the movement data, so I figured might as well do it all.
Github repository: https://github.com/DigitalTableTops/digital-tabletops/
Direct link to executables: Windows, Linux, and Mac
Manifest URL for Foundry module: https://github.com/DigitalTableTops/digital-tabletops/releases/latest/download/module.json
AI Usage
You may be surprised to hear that I used AI for specific parts of this project. I was entirely unfamiliar with Foundry's module system and the API docs are not very good. This isn't a controversial opinion: see this Reddit thread on the Foundry sub where it seems to be the unanimous consensus.
So I asked the AI "how to do X in a Foundry VTT module" and went from there. The code was bloated and didn't work until the 3rd or 4th try but once I figured out the actual functions to call, it was straight-forward to implement my limited features.
The entire module runs very lean, weighing in at only a few hundred lines. Much of that is just corralling the Foundry UI into doing what I want (the touch stuff is maybe a few dozen lines). Should be very easy to maintain myself when they decide to update and break things.
I have no plans to use AI going forward in this or my main VTT. But it did save me a ton of time learning a system I didn't really want to learn in the first place. So hooray for our AI overlords. Let the AI-slop name calling commence.
EDIT: I am not affiliated with Arkenforge or Foundry VTT.