Ideas
(This page is very much WIP including the layout, but if you've made it this far, send me an e-mail!)
Files and file-systems
UpEnd
Priority: A+
This is the project I'm currently trying to push forward the most.
((ref: [[projects.upend]]#Intro,1:#*))
Miscellaneous
Life-cycle of files
- A way to denote less or more accessed files?
- MP3s not played in years, code read a long time ago...
- Where did a file come from?
- Both in a "Downlodaded from the internet"/"Created via Photoshop" meaning, as well as the "where was this file before I moved it here"?
(Hyper)media
Generic Out-of-Band Markup editor (/format?)
Priority: A
(opens the door to many other projects!)
Motivations:
If anyone wants to mark up a document it's easy to just fire up any text editor. On the other hand, there's no equivalent for out-of-band markup.
To be fair, there isn't even any common format for OOB markup - maybe start there? How to simply represent text + attached information?
Overlaps with Multi-Annotator?
Video Navigator
Priority: B+
(non-essential, but scratches an itch I have annoyingly often)
Making video as easy to navigate as text!
Concepts to utilize:
- Pseudo-"movie barcode" (as on https://media.ccc.de)
- Have recursive seek-bars - coarse and finer
- above and below the video?
- (Automatic) bookmarks/meaningful history
- To allow for digressions (see [[thoughts.interfaces]])
- Video timestamps ⇆ text; do not change state unexpectedly
- Markers based on scene detection (adjustable sensitivity)
Itch spotted elsewhere: https://twitter.com/rsnous/status/1357532520812748801?s=20
Paper-text Quote-taker
Priority: B
(exists in some forms already but none that would really fit me god dammit)
Social annotation tools are really nice, but so is reading from paper - why is the workflow to merge the two so complicated? Imagine an app:
- Take a picture of a book 1.5. Select the appropriate text excerpt by "highlighting it"
- It is OCR'ed and stored
- You can attach information about the book, page number etc.
Various Experiments
Machinical a/v cut-ups // Decontextualizer
Priority: Solid B?
- Take a set of videos that are subtitled
- Sort subtitle segments by length (text, time)
- Filter or even modulate chosen segment length
- Randomly pick N segments
- Join them together along with their videos
There could be an intermediate format (i.e. step 4.5
) - a text file that is then fed to a final video editor (ffmpeg script); and hence editable using standard tools (grep, vim, etc.).
A/V Recombinator
Priority: Solid B.
Imagine a pool of audio, a pool of video, and a set of operations. Pick a video, pick some transformations (cuts, filters, etc.), and feed the result back into the pool. (Kind of like https://electricsheep.org/ evolves) Add some audio, let it stew, check back in a while :)
Another inspiration is the ffmpeg Glitch Art bot on mastodon.
Slide Capturer
Priority: B+
(The simplest version that's already useful should not be too difficult to implement.)
A program that extracts slides as bitmaps based on image (dis)similarity when given a video of the lecture (and possibly coordinates where the slides are in the video?)
Additionally: Just output the timestamps of slide changes, e.g. for annotating an audio track so that each segment can afterwards be paired with the slide...
YouTube annotations
RIP, another Google-gutted feature with great potential. Let's do better.
Web Annotations
Priority: C
(Stuff like popcorn.js would have been sufficient, but died - for a reason? Additionally, a lot of the work there is in UX polish and doing Google's work.)
Essentially comments with a time-stamp + spatial info (being able to annotate a certain area of the video).
- [x] Would the W3C Web Annotation data model suffice?
- It would. Implementation details / integration payoff uncertain.
From existing comments
ALREADY DONE - https://github.com/ris58h/youtube-timestamps
Go through current page of comments, check for timestamps, insert them on the timeline - kind of like SoundCloud used to?
Multi-Annotator
Priority: C
(Big project, lots of essential complexity. Perhaps [[UpEnd|projects.upend]] will help this along?)
Like https://docdrop.org except with native understanding of the formats
-
[x] What's the underlying structure of annotations?
- [x] check out w3c standards, hypothes.is...
-
target + body = annotation
- in-document targetting - url fragments insufficient to mark, e.g. a sentence
- W3C handles it by just providing a ton of options
- in-document targetting - url fragments insufficient to mark, e.g. a sentence
Social Networks
Boards
Priority: B
(Too interesting not to attempt.)
A collaborative spatial canvas that you can place any sort of info in (files, images, links, text), but in which every participant has a tangible presence.
A real "gathering place" for projects, planning, etc.
There's projects are trying to solve the awkwardness of video calls, but they approach the spatialization either in a completely abstract way (Wonder, or a bit too "skeuomorphic" for my tastes (Kumospace.
Why not join the natural metaphor of spatialized presence with an actual (hyper-)pinboard system - kind of like Muse does?
You could, at the same time, build a 2D multimedia mind-map collage of whatever you're talking about, while actually being casually "present" in that document.
Open-source Identity Toolkit
Priority: C
(There's people who can do it much better and faster than I can.)
A ready-to-use software package that contains:
- Webcam-controlled 3D face model that can be parametrized
- A Virtual Webcam
- A voice changer
(Think VRChat, but without the VR.)
Uses:
- There's a ton of legitimate reasons not to show one's face/voice online (in fact, some would argue that internet best be used anonymously), but that means no facial expressions to communicate with.
- Personal experiments with what kind of identities can one assume; identity "self-forming". k
Various Text-Messaging Experiments
Priority: C
(Not really all that important, but would be fun)
A chat where various rules can be imposed (including several rules at once), just to see what it does to communication:
Constrained chat
- r9k (i.e. forbid repetition)
- "no e", a.k.a. lipograms, or other forms of constrained writing
- ALL UPPER CASE FOR ALL USERS / all lowercase for all users
- Time-limit, character budget...
- No nicknames
- etc.
messaging app where everyone has a unique speech bubble style, like in comics (@tophtucker). every time you say something, it slightly but permanently perturbs your speech bubble's design
IRC thread detector
Usually, people in IRC reply back an forth to each other, with each message prefixed with the nick of the recipient. Would it be possible to automatically detect an on-going conversation and highlight/hide it, if one wants to (not) follow that one?
Modular Social Network / Discussion Board
Priority: Concept?
A modular "mix-and-match" system for building a social network.
The underlying structure of most (if not all?) discussion systems can be expressed using a differently shaped tree of messages.
- Global linear list (IRC-like)
- List of linear lists (4chan, phpBB-like, StackOverflow)
- A selection from user-specific (semi-)linear lists (Twitter, Instagram, Facebook...)
- List of trees (Reddit)
This is not some grand insight, but since the base is the same, the rest can be thought of as different "modifiers". For example:
- Anonymity:
- Pseudonymous
- Optional (4chan)
- Forced
- Media type:
- Text
- Images
- Videos
- Moderation:
- None (4chan)
- Voting scales
- Single scale (Reddit)
- Multiple scales (Slashdot, Facebook)
- Voting options (only adding or also subtracting score?)
- Voting consequence
- Approval necessary? (Metafilter)
- Expiration date of posts, r9k-like constraints...
Obviously, it's a tough job to write software for just one type of a social network, let alone all of them. But for experiment's sake, this doesn't really need to scale to millions of users, and the UX doesn't need to be perfect either.
It would be interesting enough just to try out what a Twitter with optional anonymity would look like, image-only Reddit, real-time phpBB bulletin board, time-limited IRC with voting and forced anonymity (etc.), and I don't think it's impossible to create a UI that is abstract/general enough to allow even for weird use cases like these.
Hardware // Interfaces
Single-handed keyboard
Priority: C
-
For note-taking on the go or other input-disadvantaged situations etc.
-
Most probably chorded
- but are there alternatives?
-
Shape could be 3D printed to fit a hand's grip kind of like a Nunchuk?
-
How to have feedback for what's typed?
After I got into computers by 1962... damnit I wanted a machine that would allow me to type with one hand wherever I went! And we still don't have it.
Ted Nelson - Intertwingularity: When Ideas Collide (9:37)
Haptic feedback mouse
Priority: ???
- (I think this has been done before, but only in a handful of models)
- why the heck is there no haptic feedback on a mouse?
- Even just a vibration motor strapped on a regular mouse, buzzing on a button mouse-over or on window edges seems like a huge improvement
- (not to mention the magic Apple does nowadays with simulating depth, etc.).
Shouldn't be too hard to prototype on the hardware side?
Personal Information Management
Multi-Calendar // Timeline
Calendar part
- Allow preliminary dates / times (see [[Uncertain Interfaces|thoughts.interfaces.uncertain-interfaces]])
- De-duplication of events
- Be intelligent about multiple calendars having the same event (same time, fuzzy match titles) and merge them
- Broad / long-term events, boundaries
- No Earlier Than, etc.
Personal "everything log"
- e.g. allow for importing Garmin Connect data, Daylio data, Loop Habit tracker data, etc...
- partly implemented in:
Quantified-Self Trackers
Mental fatigue tracking
Priority: Literally my bachelor thesis topic
The cursor entropy part, anyway; I'd like to experiment with the rest later.
- Blinking tracking
- Cursor entropy tracking
1st phase: Just see if it works and corresponds to subjective ratings? 2nd phase: Adjust UIs, color temperature based on fatigue levels?
Sleep video movement tracker
Priority: C
Point a cheap IR camera at my bed, quantify pixel differences, see if it matches up with wristwatch sleep tracking?
(Cons: Might get really creepy, but worth trying!)
Raspberry Pi
mp4museum with a web interface
Priority: B
- On first run, start its own AP
- Allowing you to connect to a web interface, allowing to potentially set a SSID/password to connect to
- use
omxplayer
- Build image from https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit
- Is there something like Docker but for Raspberry Pi images?
Perspective Transformator // Mapper
Priority: C+
Mostly a workflow-optimizer rather than a novel approach, but touches on interesting topics (i.e. real-time rendering on the raspi)
Universal video-mapping solution for galleries, etc.
Take HDMI in, transform according to the web interface, output over HDMI.
(Hardware for HDMI input: https://github.com/pikvm/pikvm)
UNIXy stuff
Better shell
🚧🚧🚧
https://explainshell.com/ but in reverse?
🚧🚧🚧
Types
-
Rewrite what's feasible (
ls
,cat
...) -
Models for parsing the output of known utilities?
- Could also include typing of input - i.e. smart autocomplete based on what's expected at any given position...
-
[ ] (What language to use?)
Existing
Non-utilitarian
OVERSEER v2
Priority: B https://gitlab.com/tmladek/overseer except better
- Add quote sources
- From twitter channels, etc.
Miscellaneous
MQTT-based process SIGSTOPper
VS Code Outliner Extension
Priority: Why me?
There's currently no extension that would provide an outliner editing experience but without the whole shebang (e.g. Foam, I think?).
I just want to be able to travel in lists and collapse them easily.
OTHERS
- A way to correlate data in human-time?
- NLP data -> language conversion?
Other's resources
Other lists of ± project ideas that I found particularly inspiring: