Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hexagontruth/lenticular
shader thing
https://github.com/hexagontruth/lenticular
Last synced: 21 days ago
JSON representation
shader thing
- Host: GitHub
- URL: https://github.com/hexagontruth/lenticular
- Owner: hexagontruth
- License: other
- Created: 2020-12-18T21:14:45.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2023-03-19T18:18:53.000Z (almost 2 years ago)
- Last Synced: 2024-02-23T18:10:14.601Z (11 months ago)
- Language: JavaScript
- Homepage:
- Size: 173 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Lenticular
==========
By GrahamA fragment shader thing for making videos &c.
## Overview
This is a fucking trash fire stay away plz.
## Getting Started
Lenticular provides a rudimentary display and recording tool for simple stacks of fragment shaders and 2D canvas context drawings. Mostly the former. It can take webcam input, still frames, or a series of frames from e.g. a video as input.
Programs are defined by JSON files in either "library/programs" or "user/programs," and shaders are defined in "library/shaders" or "user/shaders." Shader paths in program files are relative to these directories. Subdirectories, etc. are allowed.
- To get started, clone the repo, install the deps, etc. and run "yarn run" or equivalent from the project root.
- Specify "?program=[program-name]" or "?p=[program-name]" in the URL to run a program.
- Add a "dim=[n]" parameter to the URL to override program specifications for canvas size (this is sometimes useful on shittier hardware vis-a-vis not crashing your GPU).
## Controls
- \: Start or stop play
- \: Increment execution or stop if playing
- \: Toggle canvas size between contain and cover wrt browser window
- \: Toggle webcam viewport in the same fashion
- \: Reset play to time index 0 and clear buffer textures
- \: Save current frame to file## Output
Besides saving individual frames, Lenticular can export sequences of frames to individual PNG images or a video file, provided ffmpeg is installed. Toggle the "Record images" button and "Record video" button to enable or disable these modalities. Not that enabling these *does not cause recording to start* — you must click the "Record" button to actually start recording. Stopping recording will finalize the current video file. Play can be stopped and incremented while record is still active. Frame range to record can be set in the program JSON file.
## Additional Resources
There's a bunch of other crap that I don't entirely remember and can't explain well, but can probs be discovered pretty easily. The bulk image uploader is sort of flaky but should work exactly once per page load. Four additional still images can be loaded into the four "drawing" canvases available in the dropdown. Double click on the canvas to load a file. These are stored in IndexedDB so will persist between sessions in the same browser until cleared. The canvases can also be used for running arbitrary 2D canvas context drawings, which are also specificed in the program JSON file, somehow.