EasyTangibleTable
EasyTangibleTable is a lightweight Unity asset for building interactive tangible table applications using TUIO. Easily detect, track, and manage fiducial markers (tags) to create interactive surfaces, installations, and multi-object experiences. Note: Requires a TUIO source (such as reacTIVision, Displax, or other tracking systems) to send tag data over OSC.
com.ireshsampath.unity-assets.easy-tangible-table 
Install via UPM
Add to Unity Package Manager using this URL
https://www.pkglnk.dev/easy-tangible-table.git README Markdown
Copy this to your project's README.md
## Installation
Add **EasyTangibleTable** to your Unity project via Package Manager:
1. Open **Window > Package Manager**
2. Click **+** > **Add package from git URL**
3. Enter:
```
https://www.pkglnk.dev/easy-tangible-table.git
```
[](https://www.pkglnk.dev/pkg/easy-tangible-table)Dependencies (1)
README
๐งฉ EasyTangibleTable for Unity

๐ Overview
EasyTangibleTable is a lightweight Unity package for building tangible table applications using the TUIO protocol.
It allows Unity apps to detect, track, and interact with fiducial markers (tags) on interactive surfaces such as touch tables and projection systems.
The package provides:
- a clean event-driven API
- a component-based tag controller system
- an extensible architecture for interactive installations and R&D projects
โ๏ธ Features
- โ Detect tangible tags using TUIO protocol
- โ Track tag position, rotation, and movement
- โ Event-driven architecture
- โ Create custom tag behaviors
- โ Support for multiple tags simultaneously
- โ Built-in target alignment detection
- โ Clean EasyTT API
- โ Designed for interactive installations and R&D prototypes
Perfect for:
๐งฉ Tangible user interfaces ๐ฎ Interactive installations ๐งช R&D prototypes ๐๏ธ Museum installations ๐ฅ Multi-object interactive demos
๐ฆ Installation
EasyTangibleTable requires extOSC to receive TUIO messages.
Follow the installation steps in order.
1๏ธโฃ Install extOSC (Required) via Unity Package Manager (Git URL)
- Open Unity โ Window โ Package Manager
- Click + โ Add package from Git URL
- Paste the following: https://github.com/IreshSampath/extOSC.git#upm
- Click Install
2๏ธโฃ Install EasyTangibleTable via Unity Package Manager (Git URL)
- Open Unity โ Window โ Package Manager
- Click + โ Add package from Git URL
- Paste the following: https://github.com/IreshSampath/unity-assets-easy-tangible-table.git
- Click Install
๐งฐ Import the Samples

After installing the package:
- 1๏ธโฃ Open Package Manager
- 2๏ธโฃ Select EasyTangibleTable
- 3๏ธโฃ Go to the Samples tab
- 4๏ธโฃ Click Import
๐ฎ Available Sample Prefabs

Inside the imported sample, you will find two prefabs.
EasyTangibleTable
- Receiving TUIO tag and touch data
- Displaying tag details
- Debug logging
โ ๏ธ EasyUIConsole is required for debug output.
EasyTangibleTable Demo
This prefab demonstrates example tag behaviours and abobe bsic functaionalties.
Example tag controllers included:
TagAController
TagBController
TagCController
TagDController
These show how to create custom tag interactions, such as:
- rotation-based UI states
- button interactions
- color selection
- alignment triggers
โ ๏ธ EasyUIConsole is required for debug output.
3๏ธโฃ Import EasyUIConsole
โ ๏ธ This sample requires EasyUIConsole to display the logs.
Without EasyUIConsole the system still works, but debug messages will not appear.


๐ง Basic Usage
EasyTangibleTable provides a simple API via EasyTT.
Example
using GAG.EasyTangibleTable;
void OnEnable()
{
EasyTT.TagAligned += OnTagAligned;
EasyTT.TagRemoved += OnTagRemoved;
}
void OnDisable()
{
EasyTT.TagAligned -= OnTagAligned;
EasyTT.TagRemoved -= OnTagRemoved;
}
void OnTagAligned(int tagID)
{
Debug.Log($"Tag aligned: {tagID}");
}
void OnTagRemoved(int tagID)
{
Debug.Log($"Tag removed: {tagID}");
}
๐ฎ Create Custom Tag Behaviours
Each tangible tag can have its own controller script.
EasyTangibleTagControllerBase
Example
using GAG.EasyTangibleTable;
using UnityEngine;
public class MyCustomTagController : EasyTangibleTagControllerBase
{
protected override void OnTargetReached()
{
Debug.Log("Tag reached target!");
}
protected override void OnTargetDeparted()
{
Debug.Log("Tag left target!");
}
}
Attach this script to your tag prefab.
๐ก Available Events
EasyTangibleTable exposes multiple events:
EasyTT.TagPlaced
EasyTT.TagUpdated
EasyTT.TagMoved
EasyTT.TagRotated
EasyTT.ActiveTagsUpdated
EasyTT.TagAligned
EasyTT.TagAlignmentLost
EasyTT.TagRemoved
These events allow you to build complex interactions such as:
- UI triggers
- object manipulation
- multi-tag interactions
- experience control
๐จ Example Use Cases
EasyTangibleTable can be used for:
- tangible games
- interactive tables
- educational installations
- museum exhibits
- research experiments
๐ License
IT License โ Free for commercial and personal use.
๐ Thank You
Thanks for using EasyTangibleTable!
- Feel free to contribute
โญ Star the repo ๐ Report issues ๐ Suggest improvements
๐ค Author
Iresh Sampath
๐ LinkedIn Profile
No comments yet. Be the first!