Code Monkey home page Code Monkey logo

study-of-light's Introduction

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!

study-of-light's People

Contributors

gkstretton avatar

Watchers

 avatar  avatar

study-of-light's Issues

Do speed control in post- pipeline

  • support delay and min_duration
  • build structure for scalable property definitions across ContentTypes
  • pass selected.jpg.creationtime to get_section_properties. Loader is created, just need to get it there cleanly, bearing in mind it should interrupt a state report section
  • define property behaviour for content types
    • full short
    • drain highlight short
    • full video
  • dslr timelapse

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.