Skip to content

GKStretton/study-of-light

Repository files navigation

A Study of Light

This is the monorepo for A Study of Light.

  • 3d files
  • Firmware
  • serial-mqtt bridge
  • protos and constants
  • Backend Systems
    • Serial-MQTT bridge supporting an event driven architecture
    • RTSP streaming for multiple consumers of webcam feeds
    • Remote firmware update
    • Remote camera crop configuration
    • Control interface for system
    • Session management system
    • OBS integration for live streaming
    • Automated video, photo, and state report capture
    • Automated post-processing of photos and short- & long-form video content.
    • Automated social media posting
    • Automated session control

Instructions

scripts

  • ./scripts/dev/mount-md0 - mount DEPTH's filesystem locally, /mnt/md0/light-stores
  • ./scripts/dev/extras-update - render protos and xlangconsts, copying to everywhere necessary.
  • ./scripts/dev/update-depth - update depth with latest version of the backend systems
  • ./scripts/dev/cloud-certs - update webrtc.gregstretton.org certs for when the webcam stream fails on the cloud system
  • ./scripts/dev/cloud-update - update asol.gregstretton.org interface with latest build from github action

.env settings

These are the environment variables used, and they default to the following in the docker-compose:

TOP_CAM=/dev/video2 FRONT_CAM=/dev/video0 LIGHT_STORES_DIR=/mnt/md0/light-stores/

kv/ settings:

There's a key value store in e.g. /mnt/md0/light-stores/kv/ with most configuration.

  • ENABLE_CONTENT_SCHEDULER_LOOP: controls whether the content scheduler loop will run to automatically upload at regular intervals
  • ENABLE_SCHEDULER: controls whether the scheduler will run, which automatically runs sessions each week

Snapshot of kv/ 08/02/2024:

EMAIL_RECIPIENT_MAINTENANCE MAILJET_API_SECRET TWITCH_REFRESH_TOKEN vial-profiles EMAIL_RECIPIENT_ROUTINE_OPERATIONS TWITCH_CLIENT_ID crop_dslr youtube-credentials.json EMAIL_RECIPIENT_SOCIAL_NOTIFICATIONS TWITCH_CLIENT_SECRET crop_front-cam youtube_client_secret.json ENABLE_CONTENT_SCHEDULER_LOOP TWITCH_EXTENSION_CLIENT_ID crop_top-cam OBS_LANDSCAPE_URL MAILJET_API_KEY TWITCH_EXTENSION_SECRET system-vial-profiles

Sub-Systems

Storage

Currently all data is stored to disk at the -basePath provided to goo.

basePath:

  • session_content/
    • 1/
    • 2/
  • session_metadata/
    • 1.yml
    • 2.yml
  • kv/ (key-value storage for crop config etc.)
    • crop_dslr
    • crop_front-cam
    • crop_top-cam

Each session_content folder has the following format (output content in bold):

  • state-reports.yml
  • dispense-metadata.yml
  • dslr/
    • raw/
      • 0001.jpg
      • 0001.jpg.creationtime
      • 0001.jpg.yml (crop info)
    • post/
      • selected/
  • video/
    • raw/
      • front-cam/
      • top-cam/
    • post/
      • CONTENT_TYPE.i.mp4
  • stills/
    • INTRO/OUTRO-LANDSCAPE/PORTRAIT.jpg

License

This work is released under the CC0 1.0 Universal Public Domain Dedication. You can find the full text of the license here: https://creativecommons.org/publicdomain/zero/1.0/

Polite Request for Attribution

While it's not legally required, we kindly ask that you give credit if you use or modify this work. Attribution helps support the project and encourages future learning and contributions. You can provide credit by linking to this repository or mentioning the original author's name. Thank you for your cooperation!

About

Gateway & support systems for A Study of Light

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published