V-Panel/README.md

40 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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