Code Monkey home page Code Monkey logo

horture's Introduction

Horture

Horture is an application for streamers who want to elevate community interaction to a new level. In essence, Horture allows to remove the boundary of a streamoverlay and a broadcasters desktop/captured application window.

Current state of streaming

Most streamers try to come up with interesting ways to allow their community to not only be part of a chat, but also get acknowledged for their continued support. E.g. using alerts which are shown in their streamoverlay to notify about followings/subscriptions and more. This is a suitable way for handling such events, but what if you want to go a step further?

Horture's goal

The simplest usecase for horture is to allow the integration of displaying events directly on your desktop/captured application window. When broadcasting you would see what your viewers see, without any delay and without having to rely on a second monitor having an OBS preview of your stream running.

But the above is not really what horture is intended for. It is made to test your resilience and allow your community to directly interact with what you see. This means triggering various effects which alter your vision. Think about having some kind of challenge day in which you try to speedrun your favourite game, try to play your best in some PvP matches but with your community trying to backstab you again and again and again?

Supported effects

  • Display predefined GIFs
  • Composable translation/scaling/rotation effects for each displayed element:
    • Move to some position
    • Rotate
    • Orbit around a point
    • Scale
    • Stretch
    • Jitter
    • ... and more, and more to come...
  • Composable shaders:
    • Flashbang -> Simulate the effect of a flashbang
    • StitchIt -> Make the broadcasters screen look like a woven picture
    • ThiccIt -> Apply a convex/concave effect to the screen
    • WhereAreMyGlasses -> Apply a blur filter
    • TakeTheWhitePill -> Lots of colours
    • ... any Shader is possible, so this list is extensible with ease

Screenshots

Example screenshots. Since horture is heavily relying on movement and the described effects, screenshots do it no real justice, but just imagine everything moving (;.

Screenshot_2022-10-25-10_1600x900 Screenshot_2022-10-25-45_1600x900

As can be seen, horture is currently applied to my browser window. The browser itself is moved around in 3d-space and can still be used "as usual", or as good as you are still capable of. Further GIFs are scattered and moving all around. All effects are, as mentioned, composable and triggerable by your viewers via some redemption mechanism. The second screenshot shows your screen transformed and having WhereAreMyGlasses, ThiccIt and StitchIt effects applied.

What is to come?

If my tests work out and I can see that horture is as fun in practice as I imagine it to be, then I will continously work on the points mentioned in the list below:

  • Windows support
  • Dynamic shader effect loading: Instead of hardcode shaders into the application itself, make them readable from a config file/directory.
  • Shader DSL: Allowing Viewers to describe GLSL shaders in simple terms
  • Support basic stream events:
    • Allow displaying events for follows, subs and more
  • Youtube stream backend, currently only Twitch is supported

horture's People

Stargazers

 avatar

Watchers

 avatar

Forkers

burnysc2

horture's Issues

Horture/Loader: Make the FilePreloader polymorphic in the asset it loads into memory

Having Audio, Images, Video and Font assets unified in a single datatype is convenient for prototyping but feels weird to handle on the user side.

Would be nice to split them into different distinguishable types, w/o having to rely on GHC extensions to work with higher kinded types. On the other hand it might be convenient to use higher kinded types, but I have to investigate this further.

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.