CJ Trowbridge

Future Projects

Projects that are not current, but either planned or else maybe someday.

Re‑Imagining a FOSS Habbo + ICQ in 2025

Low‑Bandwidth Graphics • Peer‑to‑Peer Networking • Zero Central Servers


1 Historical Inspirations

1.1 MyCoke Studios (2002 – 2007)

Aspect What It Was Why It Worked on 2000‑era Links
Genre Branded social‑virtual world (isometric rooms, avatar chat, in‑game music mixer) Filled the gap between plain IM and heavy MMOs.
Tech Shockwave/Flash vectors + fixed 256 × 256 pixel tiles Tiny payloads; once cached locally, assets never re‑downloaded.
Currency & UGC “Decibels” earned via mini‑games and audience votes; users decorated rooms Loop kept teens coming back despite dial‑up speeds (< 56 kbps).
Marketing Hack Coke bottles & TV spots pointed teens online Built‑in audience; piggy‑backed on Coca‑Cola’s reach.

Lesson → Vector art + modular tiles + cleverly cached assets can deliver a rich world with minimal bandwidth.


1.2 Habbo Hotel (2000 – Present)

Aspect Details
Engine Sulake’s “FUSE” pixel‑perfect isometric renderer (Flash, later Unity / WebGL).
Interaction All state changes were delta messages: “avatar A walks to tile (5,9)”.
Monetisation Selling furniture (furni) + hotel‑wide events.
Culture Simple rooms + low barrier to entry → endless emergent play.

Lesson → Transmit state, not bitmaps. Graphics live client‑side; the wire only carries events.


1.3 ICQ (1996 – 2003 peak)

Feature Ground‑breaking Idea Bandwidth Impact
Presence “Uh‑oh! ☻ CJ is online” Text‑only packets; near‑zero cost.
User ID Self‑assigned numeric UIN (public‑key‑ish) Removed e‑mail dependency; simplified auth.
Push, not Poll Client maintains socket; server pushes msgs No busy‑waiting HTTP polling.
File xfer & Chat history Optional, on‑demand Heavy data only when requested.

Lesson → Push‑based sockets + plain‑text protocols were instantly addictive and efficient.


2 Why Tor + IPFS Are Game‑Changers

Challenge (90s/00s) Tor Hidden Services • IPFS Content Addressing Outcome
NAT traversal .onion endpoints route traffic through Tor relays; no port‑forward/ICE needed. Every peer reachable from anywhere.
DNS / identity Onion addresses are public‑key hashes; IPNS/ENS add friendly names. No central DNS, spoof‑proof IDs.
Server costs & DDoS No origin server—each peer can host itself. Costs drop to zero, attack surface shrinks.
Asset delivery IPFS deduplicates & pins vector assets; peers fetch from the mesh even while original host is offline. Infinite “seeders,” instant patch roll‑outs.
Privacy Tor encrypts links + hides IP; IPFS hashes reveal no metadata about requester. Users stay pseudonymous; location untraceable.

3 Modernising the Graphics & Protocol

3.1 Client‑Side Rendering Stack

90s/00s Piece 2025 FOSS Equivalent Why This Choice
Flash/SWF SVG + Web Components Native, vector, CSS‑styleable, no plugins.
Bitmap tiles CSS Grid layers or WebGL quads GPU‑accelerated, retina‑ready.
ActionScript JavaScript / WebAssembly Wide talent pool, sandboxed.
MovieClips Declarative components (Lit / Svelte) Incremental DOM diffing = tiny state patches.

Seed‑Driven Procedural Assets

Transmit just a seed + version. Each client locally generates an avatar or decor item identically—zero bandwidth afterward.


3.2 Push‑Based Event Fabric

  • Event Channel: Libp2p Gossipsub over Tor.
  • Data Model: CRDT (Automerge) → resist conflicts when offline.
  • Auth: Ed25519 keys behind .onion; actions signed & verified.

Event Lifecycle:

  1. User moves chair → local CRDT patch.
  2. Patch signed with user key → PubSub broadcast.
  3. Peers validate signature → merge patch → re‑render.
  4. If patch references unseen asset hash, peer fetches via IPFS automatically.

4 Blueprint — “HabboICQ P2P”

Layer Tech Notes
Identity Tor .onion (self‑auth) + DID/UCAN Portable wallet of capabilities.
Transport Tor socks5 + Libp2p NAT‑agnostic, anonymous.
Messaging / Presence Libp2p PubSub topics per friend/room Push only.
World State Automerge (binary) Delta‑encoded, encrypted.
Assets IPFS (SVG bundles, audio samples) Pin by community “guild” nodes.
Client Browser/Electron; SVG+WebGL renderer 100 kb baseline payload.

5 Key Lessons Rolled into Recommendations

Historical Insight Modern Implementation
Vectors over bitmaps = slim downloads SVG symbol libraries + CSS theming
Cache everything client‑side IPFS pinning & browser storage
Event‑only sockets (Habbo deltas) CRDT delta wire‑format
Push beats poll (ICQ presence) Libp2p Gossipsub topics
Self‑authenticating IDs (UIN / .onion) Tor addresses + DIDs
Marketing network effect (MyCoke) Community pin‑servers seed assets; social media optional but not required
Protect users in hostile nets Tor for path‑level anonymity; content encryption end‑to‑end

6 What the User Sees in 2025

Download‑less URL: https://p2photel/#/?gateway=tor

  • First load: ~200 kB (engine + minimal SVG set)
  • From then on: < 1 kB/min typical chat & movement traffic
  • Works behind CG‑NAT, corporate firewalls, or in a mesh island with zero internet—just Tor bridges & IPFS peers.

Features delivered without any central server:

  • Pixel‑perfect isometric hotel, fully community‑hosted
  • Rich text/voice chat (optional WebRTC over Tor)
  • Drop‑in music mixer (WebAudio) with sample packs pinned to IPFS
  • Persistent rooms & inventories tied to user’s keypair
  • Client‑side mods & themes (fork‑friendly)

All while remaining private, censorship‑resistant, offline‑tolerant, and virtually free to host.


7 Factorio‑Style Logic & In‑Game Workspaces

A transformative layer for this virtual world is the addition of Factorio‑style modular logic systems, enabling players to build not just spaces but functional, programmable workflows within the environment.

Concept: Social ComfyUI in an Isometric World

  • Users place and connect logic blocks like sensors, feeds, triggers, and outputs.
  • These blocks could read RSS feeds, analyze sentiment or metrics, and perform real‑world actions (send messages, call webhooks, update dashboards).
  • Objects are visually and functionally linked: like a comfyUI graph or factorio conveyor chains.

Example Use Case:

  1. A player places a “RSS Feed Reader” object.
  2. They connect it to a “Sentiment Analyzer” node.
  3. This outputs to a “Message Generator” or “Webhook Caller”.
  4. The final node sends alerts to a room, user, or external system.

Features Enabled:

  • Visual scripting in‑world: logic chains built collaboratively.
  • Integration with real‑world data sources.
  • In‑game creation of tools, bots, alert systems, dashboards.
  • Forkable and shareable logic constructs as modular items or templates.

Technical Implementation:

  • Each logic block is a WebAssembly sandbox or local plugin.
  • IPFS-pinned logic templates can be shared across peers.
  • Logic execution and state handled client-side with CRDT outputs to other blocks.
  • Trigger flow: RSS block updates → analyzer block runs NLP → output block triggers action.

This elevates the platform from a space for interaction into a fully programmable social computing environment: community‑run, modular, and integrated with external information flows.

GS-Aparat

Comprehensive Specification for Web-Based Composable Logic App

1. Application Overview

The application is a web-based, visual programming environment designed around the metaphor of “rooms” and “workers” to represent composable logic blocks. It leverages nested, hierarchical structures allowing users to create flexible logic, processes, and complex analyses visually, including optional AI-assisted tasks. The environment combines principles from functional programming and von Neumann architectures, enabling both stack-based processing and asynchronous message passing via couriers.

2. Key Concepts

a. Hierarchical Metaphor

  • World: Represents the entire logical or computational space.
    • Mario-style map showing simple network of routes between nodes representing regions.
  • Regions: Logical groups of Towns where related logics occur.
    • Mario-style map showing simple network of routes between nodes representing towns/cities.
    • A desert, a forest, etc containing some number of crude settlements which can be improved into towns and cities.
    • The view of the town/city/settlement should be a cluster of tiles showing each unique building type.
      • For example, a simple settlement is just a tent surrounded by the region’s landscape. A city might contain many warehouses, homes, offices, workshops, factories, and one of each unique building should be represented as tiles in a cluster around that node in the network, surrounded by the region’s landscape. So a settlement is just a tent next to the node, a city is many unique tiles surrounding the node.
  • Towns/Cities/Settlements: Logical groups of buildings containing rooms.
    • This is more like SimCity 2000/3000; a grid of the region’s landscape containing buildings and paths/roads. Buildings need access to paths/roads. Paths happen automatically to connect buildings to the regional network.
    • Building more fancy buildings converts their route to the regional network to roads.
  • Buildings: a home, an office building, a factory, a warehouse.
    • Players start with access to basic, simple homes and unlock more complex logic in the form of factories housing complex machinery and eventually automation tools like robots.
    • Libraries and warehouses represent memory, storing and retrieving information.
      • SQLite3, MySQL, Postgres, file stores, etc.
      • Advanced robotic storage and retrieval warehouses may represent H2, REDIS, etc
      • Cities and towns also contain buildings which do not contribute to logic, but improve quality of life. For example, a cute cafe or pub on the corner to add character to the neighborhood.
  • Rooms: Basic composable logic units, each containing one or more worker NPCs.
    • NPCs engage in leisure, watching tv or sleeping when they have nothing to do.
    • Animals like cats wander around, interacting with NPCs
  • Distant Lands: Couriers traverse the road networks, coming and going to and from distant lands off the edge of the map. These journeys represent rss feeds, emails, webhooks, api calls, search results, etc.

b. Workers (NPCs)

  • Perform task as defined on the whiteboards in the rooms they are in.
  • Visually represent system states (idle, busy, error).

c. Whiteboard (Flowchart Logic)

  • All rooms have a whiteboard outlining instructions using a simple flowchart, but some rooms have different instructions available depending on the system services associated with the space.
    • A home office might have instructions for analyzing sentiment of incoming mail and sending results somewhere, leveraging LLMs. Storing and retrieving things there might be messy and slow.
    • A warehouse might have instructions for several workers to accept storage requests and put things on their many shelves, or retrieve things as requested. (This represents database or file system interactions.) These workers might store and retrieve things quickly but be unable to perform sentiment analysis using LLMs. Robotic storage and retrieval might work even faster once unlocked.
  • Each room’s whiteboard flowchart nodes represent the logic governing the worker(s) in the room (conditionals, routing, AI-tasks).
  • Skills can be unlocked as tools are detected on the local network (e.g., local Ollama Docker).

d. Message Passing

  • Inputs and outputs represented by mail slots.
  • Couriers visually move data/messages between rooms/buildings/towns/regions/etc.

3. Technology Stack

  • Backend: Java with a simple dashboard giving details about the state of the running “world” and its users and workloads.
  • Frontend: Web-based tile RPG with those five different level views:
    • World: mario-style network of regions
    • Region: network of towns/cities/settlements with a particular landscape (desert, grass, etc) plus connections off the map to adjacent regions
    • Towns/cities/settlements: city grid of landscape with connections to the regional road network off the edge of the map. Buildings can be built, connecting automatically to the road network. Buildings must have access to the road network. Some fancier buildings cause paths to convert to roads between the building and the regional network off the edge of the map.
    • The default version of all the views is simply read-only observation. When anyone opens the url, it shows them the world. They can click click into regions, and then click into towns, and click into buildings, into homes, and even click into the whiteboards in the rooms or observe the interactions between npcs as they conduct their work.
    • All behavior of all entities and npcs across the entire world are deterministic based on the inputs into the world.
    • Couriers are bringing things into the world and dropping them through mail slots into queues. This means all of those future steps are known.
    • Having access to the entire current state of the world is all the ui needs from the server, and then it can draw out everything that’s happening in real time, updating based on changes to the state as relayed by the server, because all behavior is well understood and predictable based on the inputs. And the ui only needs to draw whatever the user is actually looking at.
    • This enables a very minimal amount of data to encode the entire state of the entire world. This is a core requirement so that massive multiplayer games involving extremely complex logic are possible.
  • Data Persistence: SQLite or PostgreSQL for simple state persistence.
  • Containerization: Docker for easy deployment and dependency management.

4. System Architecture

Backend Architecture

  • RESTful API to handle CRUD operations for worlds, regions, towns, buildings, rooms, and logic definitions.
  • Worker process simulation using Java concurrency features.
  • Automatic detection and conditional integration with external services (e.g., local Ollama Docker API).
  • Simple administrative dashboard providing state information and workload analytics.
  • Support for hybrid functional and von Neumann computing styles (stack-based processing and courier message passing).

Frontend Architecture

  • Interactive graphical web UI visualizing hierarchical levels: worlds, regions, towns/cities/settlements, buildings, and rooms.
  • Drag-and-drop functionality for constructing and editing the hierarchical structure and logic flowcharts.
  • Dynamic zoom and navigation between hierarchical levels with intuitive UI transitions.

5. Core Features

a. Rooms as Logic Blocks

  • JSON representation of logic blocks stored persistently:
{
"id": "room-1",
"name": "Sentiment Analysis",
"inputs": ["inbox"],
"outputs": ["analytics", "general"],
"instructions": [
{"condition": "document.type == 'Review'", "action": ["ai.sentiment", "send sentiment_score analytics"]},
{"condition": "else", "action": ["forward general"]}
],
"workers": [{"id": "worker-1", "state": "idle", "skills": ["basic-routing", "ai-sentiment"]}]
}

b. Dynamic Whiteboard Logic

  • Logic flowcharts editable and visually represented, stored as structured JSON:
[
{"type": "if", "condition": "input.a == true", "then": ["send output to B"], "else": ["send output to C"]}
]

c. AI Integration (Conditional)

  • Backend conditionally detects local Ollama Docker instances and dynamically exposes REST endpoints for AI tasks.

d. Workers (NPCs)

  • Workers represent the action of a function as defined by the scope of a room and the logic of a whiteboard. Think of workers as program counters moving through the logic and doing the work of executing the function.
  • When they don’t have anything to do, they engage in leisure.

e. Whimsical and Non-Functional Elements

  • Inclusion of purely whimsical buildings for fun and quality-of-life enhancements, such as parks, cafes, pet stores, gardens, or amusement attractions.
  • These buildings visually enrich the environment without impacting computational logic or functionality.

6. User Interface Design

a. Hierarchical Visualization

  • Nested UI allowing intuitive navigation between worlds, regions, towns, buildings, and rooms.
  • Detailed visualizations displaying internal logic states, worker actions, and message flows.

b. Interactive Elements

  • Drag-and-drop editing of structures and logic.
  • Dynamic visualization of courier messages.

7. Extensibility & Customization

  • Easily configurable JSON schemas to allow custom user-defined room types, building types, and logic workflows.
  • Plugin architecture enabling extended functionality and integration with additional services.

8. Implementation Roadmap

  1. Project Setup:
    • Java/Spring backend initialization, database configuration, basic REST APIs.
  2. Basic Hierarchical Functionality:
    • Implementation of world, region, town, building, and room CRUD APIs.
  3. Worker and Logic Simulation:
    • Concurrency and asynchronous processing of workers based on whiteboard logic.
  4. Message Passing System:
    • Backend logic for efficient message handling between hierarchical components.
  5. Whiteboard Logic Editor:
    • Visual editor development for flowchart-based logic editing.
  6. Conditional AI Integration:
    • Dynamic backend integration with Ollama Docker APIs.
  7. Hierarchical UI Navigation:
    • Comprehensive interactive frontend for navigating and managing hierarchies.
  8. Deployment & Containerization:
    • Full Dockerization and simplified deployment through Docker Compose.

9. Lore and Background

  • The lore is that after the world collapsed in the early 2000s, the oligarchy built a kleptocracy.
  • In the 2030s, disasters mounted and chaos spread. The klept was overthrown. The proletariat killed all the oligarchs and billionaires.
  • The new global soviet system emerged to ask everyone to do small tasks in exchange for having all their basic needs met.
  • The New New Deal of the global Soviet Aparat is that workers enjoy cozy cottagecore and solarpunk lives of leisure, doing some small task for the global soviet aparat as needed in exchange for having all their basic needs met.

Relationship Characterization

  • Mutual Pact, not Coercion - The Apparát is seen as a benevolent caretaker; workers view small tasks as community upkeep rather than labor exploitation.
  • Predictability = Security - Because the simulation is deterministic, NPCs trust the Apparát’s schedules: no surprise shortages, no hidden quotas.
  • Cottagecore + Solarpunk Aesthetic - Wooden textures, gardens full of pollinators, soft lighting, reclaimed-tech art pieces reinforce psychological comfort.

How This Enhances Gameplay

  • Emotional Connection - Players empathize with NPCs enjoying visible perks (banya steam, cat cuddles).
  • Clear Utility of “Useless” Buildings - Although cafés and bathhouses don’t change logic throughput, witnessing their effect on NPC morale adds delight.
  • Lore-Driven Determinism - The Central Plan justifies why every parcel route and worker routine is pre-known: it’s not a limitation, it’s ideological consistency.
  • Upgrade Motivation - Unlocking new green tech (e.g., algae bioreactors) visibly improves worker well-being, giving players a satisfying feedback loop between logic progression and social prosperity.

This framing keeps the focus on what workers gain while embedding the deterministic courier-logic core inside a hopeful, post-collapse solarpunk-Soviet utopia.


← Back to Projects

← Back to Home