Graphium (Latin: a sharp stylus). A tool for Tactile Cartography that treats your world not as a slippery whiteboard, but as a permanent etching.
Graphium is a Virtual Tabletop designed for the Dungeon Master who prefers weight over fluff. We believe map-making should feel like carving the unknown into existence. No cloud accounts. No subscriptions. No "slippery" controls. Just you, the stylus, and the infinite canvas.
Pronunciation: GRAF-ee-um Tagline: "Inscribe the World."
"Whiteboards are for brainstorming. Graphium is for history."
Most VTTs feel floaty and temporary. Graphium is built with funicular friction—a satisfying "bite" to every interaction that makes your choices feel deliberate.
- From "Matter" to "Tool": Graphium (the tool that shapes raw matter) reflects our focus on precision and craftsmanship.
- The Wax Tablet: Romans drafted on wax because it was durable yet correctable. We bring that same tactile decisiveness to your digital campaign.
- Local Sovereignty: Your world lives on your drive in sacred
.graphiumtomes. No cloud wizard can gaze upon your maps or hold your campaign hostage.
Observe the tool in action.
(Placeholder: Real captures of the fog raycasting and window projection being forged.)
TL;DR: A local-first, dual-window VTT. Launch it, drag a map, and start carving walls.
# Summon the code
git clone https://github.com/kocheck/Graphium.git
cd Graphium
# Bind dependencies
npm install
# Awakening
npm run devYour First Incantation:
- Launch Graphium.
- New Campaign (
Cmd+N). - Drag & Drop any map image onto the Iron Grid.
- Open World View: Project this clean window to your players (or second monitor).
- Carve Fog: Use the Wall Tool (W) to block line-of-sight.
- Inscribe: Place tokens that reveal the map as they move.
Graphium gives you a dedicated "Architect's View" full of arcane instruments, while your players see only the "World View"—a pristine projection of your reality.
- Etch (Draw): Annotate the map. Marks feel physical and permanent.
- Inscribe (Tokens): Place characters and monsters.
- Occlude (Walls): Draw dynamic light-blocking barriers.
- Dual-Window Architecture: One brain, two faces. You control the chaos; they witness the glory.
- Fog of War: A hardware-accelerated raycasting engine that creates true mystery.
- Asset Conjuration: Drag and drop images directly onto the canvas. We optimize them automatically.
Graphium embraces the tactile nature of creation through comprehensive touch and pen support.
- Direct Touch: Inscribe with your finger on tablets and touch-enabled devices
- Pressure Sensitivity: Stylus pressure translates to stroke width—light for whispers, heavy for declarations
- Two-Finger Gestures: Pan and pinch-zoom to navigate your world with natural gestures
- Unified Input: Mouse, touch, and pen all flow through the same precise pathways
Your tool should never constrain your medium. Whether you prefer the precision of a mouse, the intimacy of a stylus, or the directness of touch—Graphium responds with equal weight.
Only the finest materials were used to forge Graphium.
- Electron: The crucible that holds the application.
- React: The logic that binds the interface.
- Konva: The renderer for our high-performance 2D canvas.
- Zustand: The enlightened state management.
- Vite: The lightning-fast bellows that fuel development.
- Node.js (v18+)
- npm (The package summoner)
# 1. Claim the Source
git clone https://github.com/kocheck/Graphium.git
# 2. Enter the Workshop
cd Graphium
# 3. Gather Materials
npm install
# 4. Strike the Anvil (Dev Mode)
npm run dev
# 5. Final Polish (Production Build)
npm run build- V: Select / Manipulate
- M: Marker / Etch
- E: Eraser / Smooth Wax
- W: Wall / Occlude
- D: Door / Passage
- I: Color Picker
- Cmd + S: Save the Tome (.graphium)
- Cmd + O: Open a Tome
- Shift + Drag: Lock Axis
We welcome fellow smiths to the forge. If you wish to improve the tool:
- Fork the repository.
- Create a branch (
git checkout -b feature/my-cool-spell). - Commit (
git commit -m 'Cast a fireball'). - Push (
git push origin feature/my-cool-spell). - Open a Pull Request.
See CONTRIBUTING.md for the rules of engagement.
Made with ⚔️ by kocheck
