Year of the Depend Adult Undergarment[0]
1 RWTH Aachen University, Aachen, North Rhine-Westphalia, Templergraben 55, 52056, Germany
Abstract. She said she would come. I thought she'd come by nine. I pulled the Venetian blinds on the one window
whose yellow light kept spilling across the floor and making it harder to just sit and wait. I could not quite focus:
even without headsets, Lou Reed kept coming in waves, sometimes murmuring that he is waiting for a
man[1], sometimes hitting my right ear so hard my whole body twisted up; I pressed my
palm against the ringing eardrum, unsure whether it was in the room or in me. Was there an insect, disappearing into the
narrow gap under the refrigerator door? I try not to come closer; I am afraid that if I really see it I will kill it,
and I do not want to kill anything tonight. She is probably at some factory-style opening, one of those white concrete
rooms where Warhol's ghosts play on a loop and Maria Beatty's slow, anachronistic frames stain the plaster - images that
barely move while the light on them changes[3]. I half-remember that same roach crawling
across the frozen frames of Andy's Empire[2]. Where was the woman who said she'd
come.[0] Where is my muse.
Keywords: cli, monitoring, surveillance, event-detection, multistream, cpp23, qt6, stream-viewer.
Index Terms--David Foster Wallace (DFW); Infinite Jest (IJ); IEEE (paper format); Qt;Athon 2025; Xmas prizes.
| Yaroslav I. Riabtsev |
orcid.org/0000-0001-5530-3752.
E-mail:
yaroslav.riabtsev@rwth-aachen.de. Master's student. |
|---|
The current implementation and experimental runs have been built with the following toolchain. Functionally equivalent replacements usually work; exact minimum versions are not rigorously specified.
- CMake ≥ 3.28 - used as the meta-build system and configuration front-end for all targets in the project.[10]
- C++23 compiler - a conforming implementation of ISO/IEC 14882:2024(E) ("C++23"), providing the standard library facilities used by the project.[4]
- OpenCV - used for CV-based helpers (lines/ROI/event-detection, future AI hooks). If OpenCV is found
at configure time,
YODAU_OPENCVis defined and the OpenCV backend is enabled.[17] - Static C++23 backend reused by both the CLI and the desktop application.
- All public headers live under
backend/include/and are intended to be usable without Qt or KDE present at compile time.
- cxxopts - a lightweight C++ command-line option parser used for configuration of the CLI tools; any reasonably recent release of the library should be sufficient.[5]
- The CLI links only against
libyodauand the C++ standard library; no Qt or KDE components are required for headless deployments.
- Qt 6 (Core, Widgets) - provides the main event loop, application object, and classic desktop-style widget UI for the multi-stream viewer.[11]
- Qt 6 Test module - used for the GUI test harness when unit tests are enabled via
-DBUILD_TESTS=ON.[11] - (Optional) KDE Frameworks 6 and KDEGames 6 - when built with
-DKDE=ON, the application links against a small subset of KDE Frameworks 6 (CoreAddons, I18n, XmlGui, ConfigWidgets, WidgetsAddons, KIO) and the KDEGames 6 library for tighter integration with KDE desktops.[12], [13]
- GoogleTest (GTest) - Google's C++ testing and mocking framework, used for the C++ unit test suite.[6]
- lcov - tooling to collect and visualise line-coverage information from the test runs, typically in conjunction
with
gcovor similar backends.[7] - doxygen and graphviz - documentation and graph-visualisation tools used together to generate the API reference and structural diagrams from the annotated source code.[8], [9]
Exact version numbers are intentionally left vague; the project currently builds with mainstream C++23 toolchains and commonly packaged versions of the above utilities.
There are two common build configurations: a headless build with only the CLI tools, and a full desktop build with the Qt-based application.
This configuration builds the core library and the CLI frontend without any Qt or KDE dependencies. It is suitable for headless servers or minimal environments.
cmake -B build-cli \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_GUI=OFF
cmake --build build-cliThis produces:
build-cli/libyodau.a- the static backend librarybuild-cli/yodau_cli- the CLI shell for configuring and inspecting streams and lines
The exact set of commands and their semantics is described in more detail in cli-readme.
This configuration builds both the CLI and the Qt-based desktop application. Tests are
enabled by default and can be disabled with -DBUILD_TESTS=OFF if desired.
cmake -B build \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_BUILD_TYPE=Debug \
-DBUILD_GUI=ON \
-DBUILD_TESTS=ON
cmake --build buildThis produces:
build/yodau- the Qt desktop applicationbuild/yodau_cli- the CLI shell, linked against the same backend as the GUI
TODO: add screenshots of the GUI with multiple streams, lines, and event detections.
To build and run tests, enable debug mode, or generate coverage reports:
- Build with Debug and Coverage:
$ cmake -B build \ -DCMAKE_CXX_COMPILER=clang++ \ -DCMAKE_BUILD_TYPE=Debug \ -DBUILD_TESTS=ON \ -DENABLE_COVERAGE=ON $ cmake --build build
- Generate Coverage Report and HTML:
$ cmake --build build --target coverage
For detailed documentation, see the Documentation and for the latest coverage report, see Coverage.
This work started as my personal deviation from the Qt;Athon 2025 Round 2 brief Option #1, curated with Extenly.[15] Thanks to the Qt;Athon organizers and Extenly for the prompt. I also thank the teammates who said "yes" to joining, but went unavailable/unreachable by the time I registered the team - the project ended up solo.
Conflict of Interest: the author declares no financial or institutional conflicts, except a fully disclosed personal
interest in the Qt;Athon 2025 prizes - a Steam Deck (512GB OLED), a 100€ Xbox gift card, and up to 4 hours of mentoring
from a Qt expert, with runner-up prizes being Qt Certification Test attempts.[16]
This prize pool is the sole motivation for the project: I would rather win my Christmas shopping than do it myself.
Ethics Statement: development and testing used a mix of self-recorded and third-party video streams.
All rights to third-party materials remain with their respective owners; no test media is redistributed with this
project.
Please report any security issues using GitHub's private vulnerability reporting or by emailing yaroslav.riabtsev@rwth-aachen.de. See the security policy for full details.
This project is open-source and available under the MIT License.
[0] D. F. Wallace, Infinite Jest, 1st ed. Boston, MA, USA: Little, Brown and Company, 1996, pp. 17-27.
[1] L. Reed, "I'm Waiting for the Man," in The Velvet Underground & Nico [LP]. New York, NY, USA: Verve Records, 1967, track 2.
[2] A. Warhol and J. Palmer, Empire [Film]. USA: Andy Warhol Films, 1964, 485 min., black-and-white, silent.
[3] M. Beatty, Ecstasy in Berlin, 1926 [Video]. USA: Bleu Productions, 2004, 45 min., black-and-white and tinted, silent with music; DVD release, 2005.
[4] ISO/IEC, ISO/IEC 14882:2024 - Programming Languages - C++. Geneva, Switzerland: International Organization for Standardization, 2024.
[5] J. Arroyo, cxxopts [Software]. GitHub repository, "jarro2783/cxxopts", accessed Nov. 2025. [Online]. Available: https://github.com/jarro2783/cxxopts
[6] Google, GoogleTest: Google Testing and Mocking Framework [Software]. GitHub repository, "google/googletest", accessed Nov. 2025. [Online]. Available: https://github.com/google/googletest
[7] Linux Test Project, LCOV [Software]. GitHub repository, "linux-test-project/lcov", accessed Nov. 2025. [Online]. Available: https://github.com/linux-test-project/lcov
[8] D. van Heesch, Doxygen [Software]. Doxygen project website, accessed Nov. 2025. [Online]. Available: https://www.doxygen.nl/
[9] J. Ellson, E. Gansner, E. Koutsofios, S. C. North, and G. Woodhull, "Graphviz-Open Source Graph Drawing Tools," in Graph Drawing (GD 2001), P. Mutzel, M. Jünger, and S. Leipert, Eds., Lecture Notes in Computer Science, vol. 2265. Berlin, Germany: Springer, 2002, pp. 483-484.
[10] Kitware, CMake [Software]. CMake project website, accessed Nov. 2025. [Online]. Available: https://cmake.org/
[11] The Qt Company, Qt 6 Documentation [Online]. Qt 6 essentials and module references (including QtCore, QtWidgets, and QtTest), accessed Nov. 2025. Available: https://doc.qt.io/qt-6/
[12] KDE Community, KDE Frameworks 6 [Software]. KDE Frameworks 6 source info and release notes, accessed Nov. 2025. [Online]. Available: https://kde.org/info/kde-frameworks-6.0.0/
[13] KDE Community, KDEGames / libkdegames [Software]. Common code and data library for many KDE games, with CMake integration via the KDEGames6 target, accessed Nov. 2025. [Online]. Available: https://api.kde.org/legacy/libkdegames/html/
[14] IEEE, IEEE Editorial Style Manual, Sec. "Abstract and Footnotes," consulted and disregarded, Nov. 2025. [Online].
[15] Qt Group, "Qt;Athon 2025 Round 2 Project Briefs - Option #1: Multi-Camera Surveillance ( Extenly)," competition instructions page, accessed Nov. 2025. [Online].
[16] Qt Group, "Qt;Athon 2025 Prizes," competition page / official announcement (grand prize: Steam Deck 512GB OLED + 100€ Xbox gift card + Qt expert mentoring; runner-up prizes include Qt Certification Test attempts), accessed Nov. 2025. [Online].
[17] OpenCV Team, OpenCV: Open Source Computer Vision Library [Software]. OpenCV project website / GitHub repository, accessed Nov. 2025. [Online]. Available: https://opencv.org/, https://github.com/opencv/opencv