The Lab
Research requires a reliable environment. This page documents the hardware infrastructure and software stack I rely on to conduct , deploy , and maintain my .
Workstations & Compute
My setup is split between mobile efficiency for academic writing and a fixed station for heavier computation.
Daily Driver
Apple MacBook Pro 13"
- Specs: , 16GB RAM.
- OS: macOS Sonoma.
- Usage: Academic writing (LaTeX), lightweight coding, and remote server management.
Compute & CUDA Station
Custom Build PC
- Specs: Intel Core i5-10400F, 16GB DDR4.
- GPU: .
- OS: Windows 11 (WSL2).
- Usage: Local Deep Learning training, gaming, and heavy compilation tasks.
Peripherals
I rely on a specific set of tools to maintain flow during deep work sessions.
- Audio: Apple AirPods Pro — Essential for deep work sessions and noise cancellation.
- Input: (Keyboard) & Logitech G203 (Mouse).
- Tablets: iPad Air — Dedicated to reading papers and handwriting mathematical proofs.
- Stylus: Apple Pencil — Essential for annotations and mathematical notation.
Development Ecosystem
I prioritize tools that offer AI-integration and strong type-checking.
IDEs & Editors
- Zed — For general-purpose scripting and remote SSH development.
- OpenCode AI — An open-source AI coding agent with multi-provider support, dual build/plan agents, and native LSP integration.
- Theme: ArtLab Theme — A custom cross-platform theme blending Vitesse clarity with Catppuccin palettes, available for VS Code, Home Assistant, Zed, and Ghostty.
- Font: GitHub Monaspace Neon (primary, ligatures enabled) & JetBrains Mono.
def main():
print("Hello, Research Lab!")
Terminal & System
- Ghostty — A fast, native, and GPU-accelerated terminal emulator.
- Zsh — My default shell, optimized for speed and interactivity.
- Starship — The minimal, blazing-fast, and infinitely customizable prompt.
- Raycast — Replaces Spotlight. I use it for script commands, window management, and quick calculations.
- Firefox — Chosen for its privacy features and robust DevTools.
- Brave — A privacy-focused browser with built-in ad blocking and tracking protection.
Infrastructure & Homelab
To bridge the gap between theory and MLOps, I maintain a self-hosted cluster. This allows me to experiment with distributed systems, data pipelines, and network security in a controlled environment.
Hardware Infrastructure
Compute Node
Beelink EQR6
Runs my containerized workloads and Docker services.
Storage Node
UGREEN NASync DXP4800
Centralized Data Lake for datasets and backups.
Network
TP-Link Switch & Tailscale
Ensures fast, stable local communication.
Service Stack
I run these services using Docker and Portainer, strictly behind a Traefik reverse proxy, inside a Tailscale VPN mesh.
- DevOps & Infra — Traefik, Portainer, Gitea.
- Music & Audio — Music Assistant, Jellyfin.
- Knowledge & Notes — Obsidian, Obsidian Sync, Mealie.
- Databases — PostgreSQL, Redis.
- Storage & Media — Garage (S3), Immich.
- Home Intelligence — Home Assistant (27+ automations), Zigbee2MQTT, Matter Server, MQTT, Alarmo.
- AI & Voice — LLM Vision (Qwen, DeepSeek, Mistral), openWakeWord, Piper TTS, Speech-to-Phrase.
- Security — Cloudflare Tunnels, AdGuard Home, Vaultwarden.
- Observability — Uptime Kuma, Beszel, Speedtest Tracker.
- Utilities — BentoPDF, HA MCP Server.
AI & Model Strategy
All AI inference in ArtHome runs on open-weight models — no proprietary APIs, no data leaving the homelab, no per-token costs.
Vision Analysis
LLM Vision powers security camera analysis with timeline-based event logging. Every frame is processed locally through open-weight vision models, enabling object detection, person recognition, and activity classification without sending video feeds to external services.
Assistant & Automation
The conversation agent and automation logic layer run on a mix of open-weight models selected per task: Qwen and DeepSeek for general reasoning and instruction following, Kimi and GLM for long-context understanding (research paper analysis, conversation history), and Mistral for latency-sensitive tasks like quick classification and intent parsing.
Why Open Weights
Open-weight models are a strategic choice, not just an ideological one:
- Privacy — Data never leaves the homelab. Camera feeds, daily schedules, and voice commands stay on local hardware. No API calls means no third-party data exposure.
- Autonomy — No vendor lock-in, no deprecation risk, no API pricing changes. Models can be swapped, fine-tuned, or quantized without permission.
- Reproducibility — The same model can be run today and in five years. Closed APIs change versions, behaviors, and availability unilaterally.
- Cost — Inference on local GPUs eliminates per-token costs. For a home automation system that processes thousands of events daily, this makes AI economically feasible at home scale.
This list is constantly updated as I experiment with new tools and equipment.