It only took me a couple days to learn all the signals and work out the modifiers, but about ten days of ~an hour a day after that of speeding things up. Maybe I'll make my own instructional 80s workout video for it...
I think you could turn this into a game - Dance Hero or something. With a ridiculous storyline where you have to send signals with the power of dance to save the world
Sure, here’s a possible game plan for the idea you proposed:
Gameplay:
The player takes on the role of a survivor on a post-apocalyptic Earth, who has discovered the last remaining Fatline capacitator capable of sending signals to alien life forms. However, the capacitator can only be operated through dance inputs.
The player must navigate through various levels, avoiding obstacles and enemies, while performing dance moves to activate the capacitator and send the rescue signal.
Strategy:
The game could have different difficulty levels, with more complex dance moves required for higher levels.
The player could earn points for successfully executing dance moves, and lose points for mistakes or taking damage from enemies.
The player could also collect power-ups along the way, which could improve their dance moves or provide temporary invincibility.
Plan:
1. Develop a basic game engine with the ability to detect and interpret dance inputs from the full body keyboard.
2. Create a post-apocalyptic world with different levels and obstacles/enemies.
3. Design a variety of dance moves that the player must execute to activate the capacitator.
4. Implement a scoring system that rewards successful dance moves and penalizes mistakes or damage taken.
5. Add power-ups and other collectibles to the game.
6. Test and refine the game mechanics to ensure a challenging and enjoyable gameplay experience.
Mechanics
The game mechanics for the game could include:
1. Movement: The player would use the full body keyboard to control the character’s movement through the game world. For example, the player could move forward by performing a specific dance move, or jump by executing another dance move.
2. Dance inputs: The player would need to perform various dance moves to activate the Fatline capacitator and send the rescue signal. The dance moves could become more complex as the game progresses, requiring the player to execute longer and more intricate sequences.
3. Obstacles and enemies: The game would feature obstacles such as pits, spikes, and other hazards that the player would need to avoid. Enemies such as robots or mutated creatures could also be present, which the player would need to defeat or evade.
4. Power-ups: The player could collect power-ups throughout the game, which would provide temporary boosts to their dance moves or other abilities. For example, a power-up could make the player temporarily invincible to enemy attacks.
5. Scoring: The game would keep track of the player’s score, which would increase as they successfully execute dance moves and defeat enemies. The score could be used to unlock new levels or other rewards.
Overall, the game mechanics would revolve around using the full body keyboard to control the character’s movement and perform dance inputs, while avoiding obstacles and enemies and collecting power-ups to increase the player’s chances of success.
I rewatched that part of the video and don't see where he made fun of him. Are you referring to when he mentions that Claude Chappe was "big-brained" and zooms in on his head? If so, that sounds like a compliment to me.
The way that the "hello world" in the youtube video is synced with music made me think that it would be awesome to make music this way, to translate the body movements to sound. A kind of reverse dancing — rather then dancing to the music, the music would be created to your dance.
I was lamenting the use of "semaphore" but wikipedia supports them:
> Semaphore (lit. 'apparatus for signalling'; from Ancient Greek σῆμα (sêma) 'mark, sign, token', and Greek -φόρος (-phóros) 'bearer, carrier')[1] is the use of an apparatus to create a visual signal transmitted over distance.
> [A semaphore] is a variable or abstract data type used to control access to a common resource by multiple threads and avoid critical section problems in a concurrent system.
And the programming semaphore comes from the semaphore used as train signal to ensure that two trains are not using the same track segment simultaneously.
Smoke signals are literally the oldest known semaphore, and fire is recorded to have been used to telegraph signals over 700km per hour in the Byzantine Empire.
It is still in the books as one of the optional activities you can do. If you do it depends on the leaders of the pack. I've seen it in my kids books, but we never did that page.
Knowing about programming semaphores but not visual semaphores seems quite bizarre to me. A bit like thinking flag or register or stack were only computer terms.
I'm struggling to think of any computer terms that aren't repurposed 'normal' words, initialisms, acronyms, or portmanteaus. Even the words 'computer', 'program' and 'code' are repurposed.
Ah but it says, "The term originated as a whimsical irregular form of the verb think." but without citation. Hmm, I dimly recall some hacker wag saying something like, "it's the sound of a continuation hitting the stack"...
I am a native English speaker and never heard the word "semaphore" until taking CS classes in college. I cannot think of a common use for the term, unlike flag (see them all the time), register (do that with cars and schools) or stack (lots of those in my kitchen).
I only knew about non-computer semaphores from the Swallows and Amazons books (which are from the 1930s and 1940s). If my mom hadn't read those books to me as a child, I don't know that I'd have come across the concept.
"Token ring" is something I learned in networking, and the Wikipedia article doesn't mention railroads at all. I assume that's where the term comes from, but I only heard about railway signalling tokens decades later. (I think they may have appeared in the Thomas the Tank Engine stories on Shining Time Station, but I was quite young at the time.)
Depends on when you want to define "nothing to do with disk" as. M.2 was introduced in 2013 which would make them 9 years old by now, but if we look at Samsung's 2006 PATA SSD (with 32GiB!), then they'd be 17 and could well be on here.
I use a standard disk icon to represent "saving" in a popular web app I run. I very often see users referring to it with "click the square thing to save".
In this case, the term semaphore is equivalent to optical telegraph.
The separation isn't completely clear, but take a semaphore like a basic tool that produces signals with a strong predefined signification, like a red light in a highway traffic light. The optical telegraph have a basic signification on their symbols, like letters or numbers, but a wide range of meanings, like the message transmission.
same here with my initial first take on the name. I was doing a internet search for something recently and realized this spirit of taking an existing word and deliberately overloading it in a different context rather than coining a new term with a distinct phonemes is slowly mucking up our language to disambiguate by keywords alone. It's hard work to invent new words and I get it can slow the adoption or recognition of something if the name hasn't been settled yet and it's tempting to just skip over that whole process by leapfrogging out of the mental wrestling by coopting an existing word and append a new definition to it.
Earlier in life I used to lament the lack of uniqueness to words and the existence of synonyms but later began appreciate the overlap because having the ability to talk about something with a variety of phonemes seemed to help create some conceptual distance in a conversation that was otherwise obscured by close sounding words.
But this almost lazy reuse of existing words, I'm still not sure how I feel about it now that I'm aware of its costs.
I wonder if there are any good keyboards that are part of trousers, but that are also hidden, you know not immediately obvious that you've got a keyboard on your trousers.
Then you could have a computer in the pocket or a bag and a HUD! That could be very cool!
You can integrate 30% or smaller wireless keyboard (with Elite-C) in your trousers IMHO. This would address "good" part (think something like this https://www.tzcl.me/blog/rae-dux but without PCB and wired using wires). At least I use adux keyboard of similar size daily. Or you can go even smaller with something like this https://artsey.io/ but I am not sure if this could be considered good. Next part would be concealing it - kailh low profile are too high IMHO for pants. There are switches that are even lower but most probably this might not work. I guess captive touch sensors might be solution but I am not sure if they would work well as keyboard. I guess some art would help concealing as well.
Still I don't feel this would be really comfortable to type on.
I had a coworker write a little app to vibrate with Morse code at incoming messages, and turn the entire screen into a single button that he could tap out replies.
I am curious to know how far you take this in terms of it becoming second nature. As in, maybe after days and weeks of practice, you can type stuff effortlessly ?
It's always going to be plenty of physical effort! In terms of the mental overhead: there are some letters/motions like R, F, D that just feel second-nature already from lots of practice and more 'obvious' positions, but I still have to think about most of them. A few letters still trip me up, like remembering M versus S (mirror images). I'd love to find a seasoned signalman to get their take.
Every now and again I try and explain to non-coders why a software engineer might build something "just to see if I can" - and that a lot of the software they use probably started out as such. The video captures that so well!
Author here! Pleasant surprise to find my project at the top of HN this morning with such positive feedback :) I'm happy to answer any questions or hear suggestions for future tweaks. Planning to make this into a customizable full-body game controller as well.
Please let me know if you want to join forces! You can find my contact information at: https://github.com/mristin.
I figured that I don't mind my kids playing computer games as long as they move. The first stage for me is to find a workable approach to DOS games. In particular, I thought about adapting ski-leu to race games such as Outrun & ilks.
>> I figured that I don't mind my kids playing computer games as long as they move.
These could also be of interest for inspiration as well - basic idea this Youtuber is doing is to use console gamer joystick re-mapper hardware to convert joycon acceleration readings to button presses/button combos.
Can you Lose weight by playing Breath of the Wild? - Ringfit Controller Mod Explained Version
- Today we talk about the Ringfit Adventure controller mod for Zelda: Breath of the Wild. With this mod you can Exercise and play BotW at the same time.
I made a Ring Fit Adventure Mod for Mario Kart - Controller Bending
- Today on Controller Bending we mod the Ring fit controller to play Mario Kart 8 Deluxe with. With this Ring-con mod you have to run to drive. Literally. Squeezing the ring-con activates items!
I'd imagine a lot of similar mods could be done via computer vision instead of using joycon accel readings.
I think the key would be to show up to a gaming console as a PS4/XBox controller instead of just a keyboard. I think there are Python libraries to do this [1] or just stick to Steam games that just need WASD controls. This allows you to tap into already huge library of high quality games and just focus on the OpenCV movement-> joystick button remapping part.
Dance mat could be even easier to integrate as it acts just as a normal joystick. The problem, though, is that many games expect reaction times achievable with a keyboard & mouse, but leg movements are a bit slower.
The problem with the dance mat is that you can not use it in a school class as you need extra equipment. It worked well in a dojo for my judo classes, though.
If you want to run the code manually, install it in the virtual environment. Then you can simply run commands `ski-leu` or `pop-that-balloon`.
Btw., I use pop-that-balloon for basketball dribbling training, and a friend uses it for boxing. Have fun & please let me know if you use it for yet another sport :).
Thanks! Yeah, I definitely chose the easy way over the 'right' way for this version with just setting simple thresholds.
I'm not sure how well it will work yet, but for a game controller I might try to have users record their own custom motions - as in, "show me a few of your chosen [high punch] motions to match against in-game."
I hope the video was dramatized and that you didn't actually hurt yourself!
Rather than type every letter, a more efficient system is to represent sounds with keys. This is how stenography works. Each stoke of the keys is mapped to a series of characters; a letter, a grouping (such as 'sh' or 'ing'), or a complete phrase. Using such a system would allow one motion, for example for 'b', to map to a whole word, such as 'be'. Something as simple as that would reduce your risk of injury by something like 50%.
A major difference between stenography and typing is that steno is chorded: the signal is sent when the keys are released, not when they are depressed. I'm not sure how that would work with the full body.
Check out the OpenStenoProject for more about steno. Their community would probably enjoy discussing a full body steno theory (if they haven't already) .
Take care and thanks for all the effort that went into producing the video! It was a lot of fun :)
Interesting, I wonder if you could make a BodyChord or FaceChord setup using steno... Can you actually write code using a steno keyboard - as in, full access to all the usual symbols and modifiers - or would it just be for letters and basic punctuation?
Yes! Here is a really great talk on the state of doing so, with a fantastic realtime demo near the end. Mirabai live-codes using her Plover setup and narrates her thought process as she types out each command.
Amazing! The spoken demo reminds me of Victor Borge's Phonetic Punctuation. This would be such a great way to spend so much time getting slightly more efficient...
I saw her at a keyboard meetup in NYC. She blew my mind with her vim setup: chords representing commands meant that the keystrokes didn't exactly matter: you could have the chord represent an arbitrarily annoying set of keystrokes and have a correspondingly complicated vimrc to handle them. Very cool!!
Completely unrelated, but your comment about stenography reminded me how our French president announced the COVID lockdown. It was a speech full of key information (some I could not hear because when he announced that the schools would close children erupted in yells) but that was not the best part.
The best part was that the speech was also signed for the deaf (that part was normal) and subtitled by a ..., well, ... stenography trainee.
He or she had all wrong, could not keep the speed, was mixing words and skipping whole parts. At some point they seem to have said to themselves "oh fuck it" and were typing more or less random words.
The whole country was with them, hoping that they will go on typing until the end (which they did). That was a memorable event and people actually learned about stenography and the fact that they apparently use a special keyboard in the form of a butterfly.
As a remote software developer, if this became a product that could be used daily I'd probably buy it. It would be the key link between programming and body exercise.
Imagine teaching some ML your personal body movements, and then you could have it transcribe text into Semaphore-output video (or live rendering)... At least well enough that Semaphore-input could read it?
I started building a super simplified version of something like this to help me practice flag semaphore, but ended up learning the alphabet a lot faster than finishing that script :o)
I’ll keep this mind the next time I’m stuck on a burning rooftop and trying to communicate with the rescue chopper. I only hope the pilot understands Semaphore!
Can I just say how much I liked the small details here? Like your choice of matching sweatbands, your jazz hands on the last symbol, your choice of pose for backspace, and the commit message, "Updated readme for pedantry". In your honor, I am performing the chef's-kiss gesture. (Which I hope you will include as you add emoji to your input device.)
Have you considered adding an autocomplete? Maybe add in three most likely completions to your word and have three separate signals to select each respectively? Maybe that's cheating, but that could up your words per minute drastically!
Yes, hoping to do something along these lines for a future update! I'm not sure if it would be individual notes/chords per motion, or something based on samples and a looper. If anyone knows of related projects, I'd love to get some ideas for inspiration.
217 comments
[ 2.9 ms ] story [ 322 ms ] threadA dance revolution style tutorial would be fun
https://github.com/facebookresearch/AnimatedDrawings
Sure, here’s a possible game plan for the idea you proposed:
Gameplay: The player takes on the role of a survivor on a post-apocalyptic Earth, who has discovered the last remaining Fatline capacitator capable of sending signals to alien life forms. However, the capacitator can only be operated through dance inputs. The player must navigate through various levels, avoiding obstacles and enemies, while performing dance moves to activate the capacitator and send the rescue signal.
Strategy:
The game could have different difficulty levels, with more complex dance moves required for higher levels. The player could earn points for successfully executing dance moves, and lose points for mistakes or taking damage from enemies. The player could also collect power-ups along the way, which could improve their dance moves or provide temporary invincibility.
Plan:
1. Develop a basic game engine with the ability to detect and interpret dance inputs from the full body keyboard.
2. Create a post-apocalyptic world with different levels and obstacles/enemies.
3. Design a variety of dance moves that the player must execute to activate the capacitator.
4. Implement a scoring system that rewards successful dance moves and penalizes mistakes or damage taken.
5. Add power-ups and other collectibles to the game.
6. Test and refine the game mechanics to ensure a challenging and enjoyable gameplay experience.
Mechanics
The game mechanics for the game could include:
1. Movement: The player would use the full body keyboard to control the character’s movement through the game world. For example, the player could move forward by performing a specific dance move, or jump by executing another dance move.
2. Dance inputs: The player would need to perform various dance moves to activate the Fatline capacitator and send the rescue signal. The dance moves could become more complex as the game progresses, requiring the player to execute longer and more intricate sequences.
3. Obstacles and enemies: The game would feature obstacles such as pits, spikes, and other hazards that the player would need to avoid. Enemies such as robots or mutated creatures could also be present, which the player would need to defeat or evade.
4. Power-ups: The player could collect power-ups throughout the game, which would provide temporary boosts to their dance moves or other abilities. For example, a power-up could make the player temporarily invincible to enemy attacks.
5. Scoring: The game would keep track of the player’s score, which would increase as they successfully execute dance moves and defeat enemies. The score could be used to unlock new levels or other rewards. Overall, the game mechanics would revolve around using the full body keyboard to control the character’s movement and perform dance inputs, while avoiding obstacles and enemies and collecting power-ups to increase the player’s chances of success.
https://www.youtube.com/watch?v=6HJexftddVw
EDIT: I just realized that it's the same guy behind this gem, that I randomly ran across a few months back!
https://www.youtube.com/watch?v=5q-BQ2Q_pqI
(I Made a Remote Lie Detector to Test Zuckerberg's Pulse)
Definitely a brand new sentence.
https://web.archive.org/web/20151025130300/http://www.google...
Where you type email with your full body.
https://stackoverflow.blog/2017/03/30/stack-overflow-unveils...
> Semaphore (lit. 'apparatus for signalling'; from Ancient Greek σῆμα (sêma) 'mark, sign, token', and Greek -φόρος (-phóros) 'bearer, carrier')[1] is the use of an apparatus to create a visual signal transmitted over distance.
https://en.m.wikipedia.org/wiki/Semaphore
I was only familiar with:
> [A semaphore] is a variable or abstract data type used to control access to a common resource by multiple threads and avoid critical section problems in a concurrent system.
https://en.m.wikipedia.org/wiki/Semaphore_(programming)
I always interpreted the programming meaning as that - traffic lights.
https://www.youtube.com/watch?v=7VFnDxRc_wU
https://en.m.wikipedia.org/wiki/Flag_semaphore
Or if your Monty python restaging whuthering heights
Smoke signals are literally the oldest known semaphore, and fire is recorded to have been used to telegraph signals over 700km per hour in the Byzantine Empire.
Interesting that Byzantine light seems to have been slower than modern light.
Ah but it says, "The term originated as a whimsical irregular form of the verb think." but without citation. Hmm, I dimly recall some hacker wag saying something like, "it's the sound of a continuation hitting the stack"...
Maybe "plonk" counts? https://en.everybodywiki.com/Plonk_(Usenet)
I would think computer register comes from the noun, not the verb — think cash register, not to register a car.
I cannot think of a way that "semaphore" would come up in non-nerd conversation at all.
"Token ring" is something I learned in networking, and the Wikipedia article doesn't mention railroads at all. I assume that's where the term comes from, but I only heard about railway signalling tokens decades later. (I think they may have appeared in the Thomas the Tank Engine stories on Shining Time Station, but I was quite young at the time.)
> In geometry, a disk (also spelled disc) is the region in a plane bounded by a circle. (wikipedia)
So you wouldn't find those in an SSD, it would have to be a spinning disk sort of deal.
The separation isn't completely clear, but take a semaphore like a basic tool that produces signals with a strong predefined signification, like a red light in a highway traffic light. The optical telegraph have a basic signification on their symbols, like letters or numbers, but a wide range of meanings, like the message transmission.
Take a look to the wikipedia information: https://en.wikipedia.org/wiki/Optical_telegraph
Earlier in life I used to lament the lack of uniqueness to words and the existence of synonyms but later began appreciate the overlap because having the ability to talk about something with a variety of phonemes seemed to help create some conceptual distance in a conversation that was otherwise obscured by close sounding words.
But this almost lazy reuse of existing words, I'm still not sure how I feel about it now that I'm aware of its costs.
Then you could have a computer in the pocket or a bag and a HUD! That could be very cool!
Still I don't feel this would be really comfortable to type on.
It worked well enough.
How far away from effortless mastery are you?
I find your project incredibly cool. And your video is awesome. Well done!
Love the project idea, the outfit worn for the demo video AND the fact that the "!" sign seems to be a "shaking fingers" power pose :D
http://nik.works/project/bodyfuck/
Oh yeah, watch me
Please let me know if you want to join forces! You can find my contact information at: https://github.com/mristin.
I figured that I don't mind my kids playing computer games as long as they move. The first stage for me is to find a workable approach to DOS games. In particular, I thought about adapting ski-leu to race games such as Outrun & ilks.
These could also be of interest for inspiration as well - basic idea this Youtuber is doing is to use console gamer joystick re-mapper hardware to convert joycon acceleration readings to button presses/button combos.
Can you Lose weight by playing Breath of the Wild? - Ringfit Controller Mod Explained Version
https://www.youtube.com/watch?v=HYn3pWXMPF8
- Today we talk about the Ringfit Adventure controller mod for Zelda: Breath of the Wild. With this mod you can Exercise and play BotW at the same time.
I made a Ring Fit Adventure Mod for Mario Kart - Controller Bending
https://www.youtube.com/watch?v=CNZSfunw85A
- Today on Controller Bending we mod the Ring fit controller to play Mario Kart 8 Deluxe with. With this Ring-con mod you have to run to drive. Literally. Squeezing the ring-con activates items!
I'd imagine a lot of similar mods could be done via computer vision instead of using joycon accel readings.
I think the key would be to show up to a gaming console as a PS4/XBox controller instead of just a keyboard. I think there are Python libraries to do this [1] or just stick to Steam games that just need WASD controls. This allows you to tap into already huge library of high quality games and just focus on the OpenCV movement-> joystick button remapping part.
[1] Something like this - although it might be Windows only https://pypi.org/project/vgamepad/
I implemented a couple of mini-games using a dance mat as well:
https://github.com/mristin/dance-a-mole-desktop
https://github.com/mristin/judo-dance-desktop/
https://github.com/mristin/dance-cat-to-mouse
https://github.com/mristin/burpee-frog-desktop
https://github.com/mristin/dance-runaway-desktop
Dance mat could be even easier to integrate as it acts just as a normal joystick. The problem, though, is that many games expect reaction times achievable with a keyboard & mouse, but leg movements are a bit slower.
The problem with the dance mat is that you can not use it in a school class as you need extra equipment. It worked well in a dojo for my judo classes, though.
https://github.com/mristin/ski-leu-desktop/releases/download...
https://github.com/mristin/pop-that-balloon-desktop/releases...
If you want to run the code manually, install it in the virtual environment. Then you can simply run commands `ski-leu` or `pop-that-balloon`.
Btw., I use pop-that-balloon for basketball dribbling training, and a friend uses it for boxing. Have fun & please let me know if you use it for yet another sport :).
Edit: removed bullet points
Instead of MediaPipe try training a simple NN with a quickstart asking new players to assume the positions for fine tuning? :P
I'm not sure how well it will work yet, but for a game controller I might try to have users record their own custom motions - as in, "show me a few of your chosen [high punch] motions to match against in-game."
Rather than type every letter, a more efficient system is to represent sounds with keys. This is how stenography works. Each stoke of the keys is mapped to a series of characters; a letter, a grouping (such as 'sh' or 'ing'), or a complete phrase. Using such a system would allow one motion, for example for 'b', to map to a whole word, such as 'be'. Something as simple as that would reduce your risk of injury by something like 50%.
A major difference between stenography and typing is that steno is chorded: the signal is sent when the keys are released, not when they are depressed. I'm not sure how that would work with the full body.
Check out the OpenStenoProject for more about steno. Their community would probably enjoy discussing a full body steno theory (if they haven't already) .
Take care and thanks for all the effort that went into producing the video! It was a lot of fun :)
The Charachorder One is one example
https://www.charachorder.com/products/charachorder-one
https://www.youtube.com/watch?v=Wpv-Qb-dB6g
The best part was that the speech was also signed for the deaf (that part was normal) and subtitled by a ..., well, ... stenography trainee.
He or she had all wrong, could not keep the speed, was mixing words and skipping whole parts. At some point they seem to have said to themselves "oh fuck it" and were typing more or less random words.
The whole country was with them, hoping that they will go on typing until the end (which they did). That was a memorable event and people actually learned about stenography and the fact that they apparently use a special keyboard in the form of a butterfly.
>>Downward Dog Driven Development
Imagine teaching some ML your personal body movements, and then you could have it transcribe text into Semaphore-output video (or live rendering)... At least well enough that Semaphore-input could read it?
You could probably combine semaphore keyboard with some sort of stenography software for faster input (e.g. Plover https://youtu.be/KZGuBV1xe64)
Here’s hoping this ends up in a Vulf music video.