summaryrefslogtreecommitdiff
path: root/AGENTS.md
diff options
context:
space:
mode:
authorgrothedev <grothedev@gmail.com>2026-05-29 21:49:20 -0400
committergrothedev <grothedev@gmail.com>2026-05-29 21:49:20 -0400
commit6196004b51a6850909c154f5402ff4858eab479a (patch)
tree126b8bb1600d0a656e0df016e25d08c390f3540e /AGENTS.md
parent27dc5849c3eaf4824d79938e7077abdbe2c82e24 (diff)
mv web stuff to root project dirHEADprototypeframeworkmain
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 0000000..4926365
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,46 @@
+## Features to implement
+### some of the features that i want to implement next
+
+- time speed adjustment
+- pause and resume time
+- label of current real time
+- label of current plot time
+- hover tooltip for data points
+- data input system
+- multiple panels that can be toggled on and off
+ - use extension scaffolding src as example https://github.com/MoebiusSolutions/extension-scaffold/tree/main
+ - possibly use ES directly, but ideally make own system if it can be better and simpler
+- config panel
+
+## Systems - dividing up concerns in a sensible, performant, and easy-to-maintain-and-work-with way
+### my initial thinking on the concerns of different architectural components. this very well may change, and each thing does not necessarily map to its own file or even its own class.
+
+- local configuration: read a config file
+- state management:
+ - user preferences
+ - service config (websocket url, remote api endpoints)
+ - UI config (what panels acive, )
+ - database stuff
+ - plots (which attributes of which input data-type are which graph axes, current time range viewable, )
+ - data input stuff (structure of input datapoints, source, metadata)
+ - health (service connections, framerate, db access)
+ -
+- application event system (to notify of state updates)
+- rendering
+- input data processing
+- HID input handling
+ - input controller maps
+- plot handling
+- DB handling
+- disk handling
+- service handling (websockets, mqtt, HTTP REST)
+
+## Some important data structures used in the program
+
+- input actions: a set of "single action that the user can perform"
+- user input: a single event of user input via hardware like key press or click or move joystick
+- input action map: a map of "set of "user input"" => "input action"
+- ui element definition:
+
+### Notes
+- we will need a good system for state management, as the state will grow fairly large, including things like user preferences, UI config (what panels are displayed), \ No newline at end of file