40 lines
2.9 KiB
Markdown
40 lines
2.9 KiB
Markdown
# 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 0–100%) | 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
|