A system monitor
Find a file
Eric Smith 825598f1a9 fix: remove class_name from autoload singletons
PluginManager and LayoutManager had class_name declarations
that shadowed their autoload registrations in project.godot.
2026-05-21 08:43:57 -04:00
addons add godot project scaffold: root scene, autoload, panel base, theme, icon 2026-05-20 12:41:00 -04:00
assets add animated splash screen with orbitron font, transition to dashboard 2026-05-20 21:49:20 -04:00
autoload fix: remove class_name from autoload singletons 2026-05-21 08:43:57 -04:00
config add plugin system with plugin/layout managers 2026-05-21 08:39:15 -04:00
plugins add plugin system with plugin/layout managers 2026-05-21 08:39:15 -04:00
scenes add plugin system with plugin/layout managers 2026-05-21 08:39:15 -04:00
scripts add plugin system with plugin/layout managers 2026-05-21 08:39:15 -04:00
shaders fix: sample noise at distorted uv for visible deformation effects 2026-05-20 21:41:37 -04:00
themes add godot project scaffold: root scene, autoload, panel base, theme, icon 2026-05-20 12:41:00 -04:00
.gitignore refactor: JSON → INI config via Godot ConfigFile 2026-05-20 22:32:17 -04:00
AGENTS.md add plugin system with plugin/layout managers 2026-05-21 08:39:15 -04:00
generate_noise.py replace noise with tileable perlin; use pixel-space sampling for fixed scale 2026-05-20 21:37:07 -04:00
main.gd add godot project scaffold: root scene, autoload, panel base, theme, icon 2026-05-20 12:41:00 -04:00
main.tscn add godot project scaffold: root scene, autoload, panel base, theme, icon 2026-05-20 12:41:00 -04:00
project.godot add plugin system with plugin/layout managers 2026-05-21 08:39:15 -04:00
README.md docs: update AGENTS.md and README with splash/config changes 2026-05-20 22:38:35 -04:00

V Panel

A fancy status monitor built with the Godot Engine. V stands for the Roman numeral 5 — a nod to my online handle, Fifthdread.

Overview

V Panel is a visually rich, real-time status monitoring dashboard built entirely in Godot. Designed to be both functional and aesthetically polished, it serves as a showcase for Godot's UI capabilities outside of gaming — custom shaders, smooth animations, reactive layouts, and system integration.

Features

  • Animated splash screen — Fullscreen splash with "V" and "Panel" text using Orbitron variable font. Font-size zoom animation via tween_method with overshoot (TRANS_BACK), then crossfades to dashboard with no black flash.
  • Responsive grid dashboard — Modules auto-arrange in a dynamic grid that adapts to window size. Drag-and-drop to rearrange.
  • Variable-size modules — Modules can span multiple grid cells (1×1, 2×1, 2×2, etc.). Drag edges/corners to resize interactively.
  • Shader-based vial fill — Each module uses a custom vial_fill.gdshader instead of progress bars. Features sum-of-sines water surface with edge-damped meniscus, wave distortion, ripple rings, swirl, HSV colour shifting, top-down lighting, sparkle effects, 3D subsurface scattering, gaussian surface foam, and wave-slope specular highlights.
  • Shader preset system — Double-click any module to open a popup menu with 7 visual presets (Vivid Vial, Emerald Deep, Lava Flow, Neon Dream, Deep Purple, Rainbow Swirl, Frostbite). Presets control all visual shader parameters.
  • INI-based configuration — Uses Godot's built-in ConfigFile class for human-friendly .cfg files. config/default.cfg for shipped defaults, config/config.cfg for user overrides (gitignored). Background color, module visibility, refresh interval, and theme are configurable.
  • Live system monitoring — Reads CPU usage from /proc/stat and memory usage from /proc/meminfo on Linux. Extensible module system for adding new collectors.
  • Smooth animations — All fill level transitions use tweens with cubic easing.

Modules

Module Data Source Description
CPU /proc/stat Real-time CPU usage percentage
Memory /proc/meminfo Real-time memory usage percentage
Testing N/A (cycles 0100%) Shader visual testing with stepped fill levels

Controls

  • Drag module — Click and drag to rearrange modules on the grid
  • Resize module — Click and drag any edge or corner to resize (snaps to cell grid)
  • Shader presets — Double-click a module to open the preset selection popup

Project Status

Active development. Core framework, drag-and-drop with resize, CPU/memory collectors, shader-based vial fill with 3D surface effects, preset system, animated splash screen with crossfade transition, and INI-based config system are implemented. More system modules (disk, network) are planned.

License

TBD