Live Coding Compo Framework
category: code [glöplog]
I pushed up the latest changes and I might end up iterating some more over it if the format starts interesting more people.
There's a few hundred people on location who seemed to have enjoyed it thoroughly.
Quote:
the actual coding aspect is pretty dull to behold most of the time, sorry
There's a few hundred people on location who seemed to have enjoyed it thoroughly.
TLM, gloom: Just wondering- are you in Saabrucken or watching via stream?
Quote:
I'm with TLM on this one - the actual coding aspect is pretty dull to behold most of the time, sorry. Doing a "handoff" to someone who can tweak and "use" the effects would be great.
sorry, Bent - you're wrong.
Havoc, on the stream this time
TLM, I get the impression this is a situation similar to live sports- nice on TV, way better in the stadium. I could be wrong though.
hearing the audience react to the changes and tweeks was good, same sort of collective inbreath you get in the main compos. i'd be disappointed if it wasnt here next year.
The live coding event was amazing! 25 minutes isn't that long, and during the 'boring' parts you always wonder what going to show up next.
yeah it was indeed great.
It reminds me of that thing we had at revision 2011 -- where the crowd could code too and make graphics and music -- Can you PLEASE!!!!!! make that return in 2015 <3 <3
It reminds me of that thing we had at revision 2011 -- where the crowd could code too and make graphics and music -- Can you PLEASE!!!!!! make that return in 2015 <3 <3
i would love to do it again. :) it was really awesome hearing the crowd react to changes in the scenes and all. thanks to the audience for being really supportive, it was a hell lot of fun :)
Hehe, yeah it was great :)
Please allow contestants to bring their own keyboards next time, it limits your coding speed if you have to use a keyboard layout you're not used to, especially if all the coder characters are in a different place.
Also, what about giving contestants a theme next time for each round? Might make it more interesting too :)
Please allow contestants to bring their own keyboards next time, it limits your coding speed if you have to use a keyboard layout you're not used to, especially if all the coder characters are in a different place.
Also, what about giving contestants a theme next time for each round? Might make it more interesting too :)
I'm sorry about the keyboard issues; there's probably a bug somewhere in the code and I didn't have time to find it.
live coding compo was definitely the highlight of the party (aside the saturday and sunday compo nights, of course). also, the timetable was just perfect: this made slow friday evening and saturday mid-day much more interesting.
therefor, I wouldn't change a thing, except maybe not to turn off the music while showing the final result? fft music sync just doesn't make sense in that case. (e.g. the blueberry's flag effect lost other scenes). anyway, it seems to me that this was a problem only on friday (while on saturday you've only turned down the volume?), but I can't say for sure.
and yes, please allow coders to bring their own keyboards. i can imagine that being a problem to the guys that are used to having their local keyboard layout.
therefor, I wouldn't change a thing, except maybe not to turn off the music while showing the final result? fft music sync just doesn't make sense in that case. (e.g. the blueberry's flag effect lost other scenes). anyway, it seems to me that this was a problem only on friday (while on saturday you've only turned down the volume?), but I can't say for sure.
and yes, please allow coders to bring their own keyboards. i can imagine that being a problem to the guys that are used to having their local keyboard layout.
loved this compo!
My thoughts on the topic:
* Would be ideal to have 3 monitors for each contestant, one for effect output only, one for code overlaid on effect, one for what the audience sees.
* This would allow the VJ to show equal parts of: code overlaid on effect, effect only, and multi-view.
* Would give the contestant some idea of how the other contestant is doing: Do I need to catch up? Do I need to show my group name?
* Zoom-in to code is a good thing since letters are so tiny, ideally the zoom-in would let you see a good overview of the code.
* It was nice to see the code view because I had medo beside me who was often able to decipher what kabuto was up to, such as "omg he's making a voxel engine! looks like minecraft is coming" or "Kabuto's effect is about to appear, he's editing the display line", this really added to the excitement.
* Making the contestants choose when to hide their code was a bad thing, they needed all the coding time they could - and they probably had to rely on the VJ to notice that they're showing their effect, which was some wasted coding time.
* Due to so much screen time with code overlaid complex effects more or less couldn't be viewed, only simpler shapes could be seen through it, such as the flag. This would encourage contestants to make simpler shape shaders of course, which is not a good thing I guess. This would be resolved by having multiple monitors.
* What about giving some theme/description each round which contestants should interpret, crowd should consider the success of interpretation as well as general awesomeness when rating the shader. This would encourage contestants to think on their feet rather than 25 mins of recitation. Could have theme/descriptions for earlier rounds but non-themed "do your best effect" for the final round?
My thoughts on the topic:
* Would be ideal to have 3 monitors for each contestant, one for effect output only, one for code overlaid on effect, one for what the audience sees.
* This would allow the VJ to show equal parts of: code overlaid on effect, effect only, and multi-view.
* Would give the contestant some idea of how the other contestant is doing: Do I need to catch up? Do I need to show my group name?
* Zoom-in to code is a good thing since letters are so tiny, ideally the zoom-in would let you see a good overview of the code.
* It was nice to see the code view because I had medo beside me who was often able to decipher what kabuto was up to, such as "omg he's making a voxel engine! looks like minecraft is coming" or "Kabuto's effect is about to appear, he's editing the display line", this really added to the excitement.
* Making the contestants choose when to hide their code was a bad thing, they needed all the coding time they could - and they probably had to rely on the VJ to notice that they're showing their effect, which was some wasted coding time.
* Due to so much screen time with code overlaid complex effects more or less couldn't be viewed, only simpler shapes could be seen through it, such as the flag. This would encourage contestants to make simpler shape shaders of course, which is not a good thing I guess. This would be resolved by having multiple monitors.
* What about giving some theme/description each round which contestants should interpret, crowd should consider the success of interpretation as well as general awesomeness when rating the shader. This would encourage contestants to think on their feet rather than 25 mins of recitation. Could have theme/descriptions for earlier rounds but non-themed "do your best effect" for the final round?
Quote:
therefor, I wouldn't change a thing, except maybe not to turn off the music while showing the final result? fft music sync just doesn't make sense in that case. (e.g. the blueberry's flag effect lost other scenes). anyway, it seems to me that this was a problem only on friday (while on saturday you've only turned down the volume?), but I can't say for sure.
Yup, that was corrected in the third (last) round on Friday. We (the djs) hadn't been told to continue playing when the round was over, so we didn't. I assume the djs will be told before the first round next year (please do it again the next year!).
And yeah, the music was turned down on the PA for the final result showing so that it should be easier to hear the interview with the contestant. The FFT analyzer got its input directly from the dj mixer though, so it was unaffected by the balancing on the main PA.
Clearly I'm outnumbered so I say please bring this to Solskogen and give it a whirl. We'll have DJs too :)
First of all! Sorry for not preparing the correct textures for first rounds :(. The finals had correct ones (thanks Gargaj)
We'll make a 3rd gen ;) of this software before a next demoparty. My thoughts:
1. Gargaj commentary was great. It was better than mine on WeCan, but he ran out of steam after second round :). And the final was mostly silent - but I guess the audience already knew what was happening.
2. We were having a good lough with the rest of plastic, since we saw how quickly coders adopted to the compo. First round was blindfolded :). The second was really nice and the finals were going smoothly like butter. But the first one was pretty chaotic with lot's of questions of what can be done :).
3. The rounds should be reduced to 20 minutes. After 15 minutes most of the coders were dry of ideas (It's a massive hard task), so let's leave them 5 additional minutes (and not 10) for tweaks.
4. What we didn't like from our perspective is that code overlay on effect is not needed. We need two outputs - clean code and clean effect.
5. Having a free (and open source) editor is something that we really liked. Instead of using Visual Studio, we will try to integrate it with Notepad++. Notepad++ will enable you to use mouse, together with keyboard, which a lot of programmers (including me) likes.
6. What I also didn't like (but probably we will leave it like this) is the compile on request. Having auto compile makes automatic updates on screen.
7. The FFT worked pretty nice, and blueberry made a really advanced use of it for adding extra effects on screen. So probably we will abandon MIDI. MIDI is cool since you got a bigger control, but I think that what we got now is simple enough and it works.
Massive thanks goes to Gargaj, for showing us the right path. If you don't mind we will try to make another approach with separated editor/previewer. But we will try to do it with Notepad++.
What I really like is a massive response of other party organisers. It would be best to held such a mini compo on local demoparties, so coders will get used to tools and pressure.
But the best thing what we can do is heaving a tournament in a such way, that if you win on a local party, then you qualify to revision finals :). This will ecourage contestants on local parties, and we will have best of the best on revision.
On this year's revision we also had really good contestants, but I really hoped that there will be 8 and not 6 :(. We had 8 on WeCan, but there wasn't ~1000 pairs of eyes observing you :)
Anyways, this compo has everything that we need to move the scene forward. It's fast paced, easy to understand after a couple of rounds, strategic, fine to stream, something in between nerdy&sexy. it's something that we can really push forward and bring new blood to our conservative community :)
Amen!
We'll make a 3rd gen ;) of this software before a next demoparty. My thoughts:
1. Gargaj commentary was great. It was better than mine on WeCan, but he ran out of steam after second round :). And the final was mostly silent - but I guess the audience already knew what was happening.
2. We were having a good lough with the rest of plastic, since we saw how quickly coders adopted to the compo. First round was blindfolded :). The second was really nice and the finals were going smoothly like butter. But the first one was pretty chaotic with lot's of questions of what can be done :).
3. The rounds should be reduced to 20 minutes. After 15 minutes most of the coders were dry of ideas (It's a massive hard task), so let's leave them 5 additional minutes (and not 10) for tweaks.
4. What we didn't like from our perspective is that code overlay on effect is not needed. We need two outputs - clean code and clean effect.
5. Having a free (and open source) editor is something that we really liked. Instead of using Visual Studio, we will try to integrate it with Notepad++. Notepad++ will enable you to use mouse, together with keyboard, which a lot of programmers (including me) likes.
6. What I also didn't like (but probably we will leave it like this) is the compile on request. Having auto compile makes automatic updates on screen.
7. The FFT worked pretty nice, and blueberry made a really advanced use of it for adding extra effects on screen. So probably we will abandon MIDI. MIDI is cool since you got a bigger control, but I think that what we got now is simple enough and it works.
Massive thanks goes to Gargaj, for showing us the right path. If you don't mind we will try to make another approach with separated editor/previewer. But we will try to do it with Notepad++.
What I really like is a massive response of other party organisers. It would be best to held such a mini compo on local demoparties, so coders will get used to tools and pressure.
But the best thing what we can do is heaving a tournament in a such way, that if you win on a local party, then you qualify to revision finals :). This will ecourage contestants on local parties, and we will have best of the best on revision.
On this year's revision we also had really good contestants, but I really hoped that there will be 8 and not 6 :(. We had 8 on WeCan, but there wasn't ~1000 pairs of eyes observing you :)
Anyways, this compo has everything that we need to move the scene forward. It's fast paced, easy to understand after a couple of rounds, strategic, fine to stream, something in between nerdy&sexy. it's something that we can really push forward and bring new blood to our conservative community :)
Amen!
Bonzaj: several of us talked at the party and we agreed that the choice between hlsl and glsl would definitely improve the accessibility of the competition. If you continue to develop this tool please look into a way to provide this choice as well, it'd open up the compo to a lot more people who aren't used to the quirks of programming glsl.
So, here is some of my thoughts about the event:
1. It was awesome. I really had fun on stage and watching. The audience was great. Thanks a lot.
2. Allowing hlsl was already mentioned by me at the party. The functionality is basically the same, so no one gets an advantage over.
3. The commentary was great, I watched the videos and this adds a lot. Seeing 2 ppl coding on stage without comments might be a little boring.
4. About the tool(s): I think gargaj's tool was the best we could have regarding the little preparation time. Sometimes it would have been nice to have some mouse input available to the editor. Also the Keyboard layout issue was a problem for some contestants, but there was really no time to fix that issue in that short amount of time.
The beauty of the tool is it's simplicity. Having a shitload of screens and the opponents effect would be distracting. Also the code has to be available to the audience. It simply doesn't make sense otherwise. The manual compile was really good, otherwise the status lines would be spammed with errors all the times, impossible for a coder to debug. Also I think it's up to the coder to decide when an effect should be shown. If the coder doesn't make a good show of it, it's his fault.
So bonzaj, I completely disagree with your point 4.
About the midi thing: yeah, drop it, or give the controller to the coder. He should be completely in control of his effect.
5. The time was pretty good, 25 minutes is fine. I was not out of ideas after 15 minutes, I just started to colorize the scene and integrate some FFT driven effects. Except maybe for the finale, but that's point 6.
6. There needs to be a break of at least one hour between the matches. While it's pretty hard to code that fast on stage, it's even harder to come up with something new if you only have 3 minutes breaks. For me in the finals I had no idea what to do. I could have coded the effect of the semifinals again, but well, that would have sucked. Maybe I just needed more preparation.
About alk's comments: more screen = more hassle and more distraction, having two screens (one for the code and one for the effect) would be okayish, as long the typing is transferred to the big screen in real time. Thing is, i hear that stuff a lot and i would probably have said that before sitting on stage too. afterwards i completely disagree.
about the theme thing: yeah, nice idea in general, but it makes the coding a lot harder. If you can code what's in your head instead of adapting to a theme, it's doable in 25 minutes. Rest assured that I thought on my feet and the only things i "recited" was like the basic stuff. As you are a musician and i luckily know something about musical theory and 3d stuff I compare your idea that we are reciting functions with the your ability to use a synth. You know how the synth is going to sound if you are using a square wave oscillator, so I know the output of a ray marching loop when i throw in a sphere/tunnel/cube function. These are basic primitives every scene is made up of. So having a theme will 1. lead to "reciting" the primitives + rotation + light, 2. a struggle to arrange a scene matching the theme.
final words: it's a little strange how ppl who didn't take part try to speak up for the contestants. next time sit on stage yourself or say what you liked/didn't like as a viewer of the compo.
1. It was awesome. I really had fun on stage and watching. The audience was great. Thanks a lot.
2. Allowing hlsl was already mentioned by me at the party. The functionality is basically the same, so no one gets an advantage over.
3. The commentary was great, I watched the videos and this adds a lot. Seeing 2 ppl coding on stage without comments might be a little boring.
4. About the tool(s): I think gargaj's tool was the best we could have regarding the little preparation time. Sometimes it would have been nice to have some mouse input available to the editor. Also the Keyboard layout issue was a problem for some contestants, but there was really no time to fix that issue in that short amount of time.
The beauty of the tool is it's simplicity. Having a shitload of screens and the opponents effect would be distracting. Also the code has to be available to the audience. It simply doesn't make sense otherwise. The manual compile was really good, otherwise the status lines would be spammed with errors all the times, impossible for a coder to debug. Also I think it's up to the coder to decide when an effect should be shown. If the coder doesn't make a good show of it, it's his fault.
So bonzaj, I completely disagree with your point 4.
About the midi thing: yeah, drop it, or give the controller to the coder. He should be completely in control of his effect.
5. The time was pretty good, 25 minutes is fine. I was not out of ideas after 15 minutes, I just started to colorize the scene and integrate some FFT driven effects. Except maybe for the finale, but that's point 6.
6. There needs to be a break of at least one hour between the matches. While it's pretty hard to code that fast on stage, it's even harder to come up with something new if you only have 3 minutes breaks. For me in the finals I had no idea what to do. I could have coded the effect of the semifinals again, but well, that would have sucked. Maybe I just needed more preparation.
About alk's comments: more screen = more hassle and more distraction, having two screens (one for the code and one for the effect) would be okayish, as long the typing is transferred to the big screen in real time. Thing is, i hear that stuff a lot and i would probably have said that before sitting on stage too. afterwards i completely disagree.
about the theme thing: yeah, nice idea in general, but it makes the coding a lot harder. If you can code what's in your head instead of adapting to a theme, it's doable in 25 minutes. Rest assured that I thought on my feet and the only things i "recited" was like the basic stuff. As you are a musician and i luckily know something about musical theory and 3d stuff I compare your idea that we are reciting functions with the your ability to use a synth. You know how the synth is going to sound if you are using a square wave oscillator, so I know the output of a ray marching loop when i throw in a sphere/tunnel/cube function. These are basic primitives every scene is made up of. So having a theme will 1. lead to "reciting" the primitives + rotation + light, 2. a struggle to arrange a scene matching the theme.
final words: it's a little strange how ppl who didn't take part try to speak up for the contestants. next time sit on stage yourself or say what you liked/didn't like as a viewer of the compo.
I'll jot down my experiences once this whole Steam launch thing is over. (Pls buy our game)
@Gargaj: what bits are Windows only in the source?
I would be glad to port it to OSX depending on whether it's a total fool's errand or not.
I would be glad to port it to OSX depending on whether it's a total fool's errand or not.
So here goes:
- Having the code overlay over the effect is important even if it occludes the effect a bit; I think it showed very well which coder was confident when they decided to show an effect by hiding the code. I think the reason they mostly didn't is that they forgot and they weren't reminded of it. (I wanted to add a sticky note but forgot - this should be in a legend in the tool next time.)
- I had an idea for a keyboard shortcut that adjust the opacity of the background color but I ran out of time.
- Having one single app for the code and effect to run forces the coders to keep a high framerate -> good thing.
- 25 minutes wasn't a bad time, I'd even round it up to 30.
- MIDI is a good idea if you have two controllers - I was only provided with one. I guess two NanoKontrols are affordable and faders are a lot more fun than buttons. At the same time I think having one effect with a single time/volume-driven state is probably better than an effect you can morph indefinitely, as far as judging goes.
The tool I wrapped up was a piece of shit: lots of bugs and inconvenient bits - I'm probably going to discontinue it. That being said, now having a bit more experience I'm willing to contribute to a better one that supports:
- both GLSL/HLSL rendering backends
- other OS's
- mouse
- adjustable fonts/font sizes
- previews for the available uniforms/textures/etc.
- etc etc.
I don't know when or how should that happen, and I'd still prefer to keep using Scintilla as an editor, so anyone who is interested in helping with rebuilding the thing from scratch, let me know.
Another thing I wanna address here is this:
Eh, let me disagree on this one. See the compo was super fun to do but hardly anything done in 25 minutes has a lasting value here. It's nice that we have something to entertain people with, but we should treat it what it is: sport, not art. Sure, it revolves around art, but it's as artistic as figure skating or synchronized swimming - performing a pre-set bunch of tricks / moves in a given time frame. Not exactly Sundance-level artistry.
- Having the code overlay over the effect is important even if it occludes the effect a bit; I think it showed very well which coder was confident when they decided to show an effect by hiding the code. I think the reason they mostly didn't is that they forgot and they weren't reminded of it. (I wanted to add a sticky note but forgot - this should be in a legend in the tool next time.)
- I had an idea for a keyboard shortcut that adjust the opacity of the background color but I ran out of time.
- Having one single app for the code and effect to run forces the coders to keep a high framerate -> good thing.
- 25 minutes wasn't a bad time, I'd even round it up to 30.
- MIDI is a good idea if you have two controllers - I was only provided with one. I guess two NanoKontrols are affordable and faders are a lot more fun than buttons. At the same time I think having one effect with a single time/volume-driven state is probably better than an effect you can morph indefinitely, as far as judging goes.
The tool I wrapped up was a piece of shit: lots of bugs and inconvenient bits - I'm probably going to discontinue it. That being said, now having a bit more experience I'm willing to contribute to a better one that supports:
- both GLSL/HLSL rendering backends
- other OS's
- mouse
- adjustable fonts/font sizes
- previews for the available uniforms/textures/etc.
- etc etc.
I don't know when or how should that happen, and I'd still prefer to keep using Scintilla as an editor, so anyone who is interested in helping with rebuilding the thing from scratch, let me know.
Another thing I wanna address here is this:
Quote:
Anyways, this compo has everything that we need to move the scene forward.
Eh, let me disagree on this one. See the compo was super fun to do but hardly anything done in 25 minutes has a lasting value here. It's nice that we have something to entertain people with, but we should treat it what it is: sport, not art. Sure, it revolves around art, but it's as artistic as figure skating or synchronized swimming - performing a pre-set bunch of tricks / moves in a given time frame. Not exactly Sundance-level artistry.
I've got everything but the liveCode directory compiling on Mac/Linux, https://github.com/twinshadow/ScintillaGL. If you're serious about rewriting the live-coding and Demo sections, I'm interested in contributing and getting it all working on OSX/Linux.
Okay, so I finished the skunkwork to clean up the previous code and here it is: https://github.com/Gargaj/Bonzomatic
Not much has changed compared to the previous version, but it's certainly less of a mess now.
Any help with potential DirectX / Linux / OSX / etc versions are welcome.
Not much has changed compared to the previous version, but it's certainly less of a mess now.
Any help with potential DirectX / Linux / OSX / etc versions are welcome.
Awesooooome!!!
Nice job Garg.
https://github.com/visualizersdotnl/misc./tree/master/demo-stub-ref
Here's some reference code to do real proper D3D11 setup (among other windows things). Maybe if my to do list gets smaller I'll take a crack at upgrading it myself.
https://github.com/visualizersdotnl/misc./tree/master/demo-stub-ref
Here's some reference code to do real proper D3D11 setup (among other windows things). Maybe if my to do list gets smaller I'll take a crack at upgrading it myself.