Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
go play outside Skyler
Nov 7, 2005


Title says it all. Post a small description of what you're currently working on and add a bonus screenshot (because pictures are worth a thousand words).

I'd be interested in knowing what CoCers are working on, or what they have as side projects.


I'm learning PortAudio, a C library that allows you to send raw bytes to a sound buffer. You can do pretty much anything sound-related with it. Right now I'm trying to make a turntable-like sound player, that would allow you to "scratch" just like DJs do. I'm still at the very beginning, so all this program allows you to do is seeking and also real-time speed increase/decrease using the +/- keys. It also loops the sound perfectly. What you're seeing on this screenshot is a 10 second recording of a Daft Punk song, the red line is where the sound is at. At the bottom left is the buffer which I need to constantly refresh. If you're wondering, I'm using OpenGL / GLUT for the rendering.

If you don't have Plat or a server, and have been living under a rock for the past year, you can upload your screenshots to WaffleImages

go play outside Skyler fucked around with this message at 16:44 on May 4, 2008

Adbot
ADBOT LOVES YOU

go play outside Skyler
Nov 7, 2005


I think it's safe to say, from what's been posted so far, that CoCers are not good at design. (myself included)

go play outside Skyler
Nov 7, 2005


mantaworks posted:

If you're stupid enough to take any hint at all from the cube 2:hypercube I will get my driver's liscense, go on a roadtrip, spend weeks learn polish and finding out where you live so I can slap my dick against your face until you pass out.

Trust me on this.

What? I'm not saying it was a good movie (in fact it sucked) but it had some cool things going, like the opposite gravity rooms and dilated-time chambers (slow-mo rooms).

go play outside Skyler
Nov 7, 2005


Nice stuff guys! Keep 'em coming.

On my part I've been working on trying to make some sort of multi-touch sound program similar in a way to the Reactable but a bit more oriented towards DJ performances.

Right now this is a simple sound recorder module. I've mainly worked on the interface for now and I've made wobbly windows which are fully graphically updated (if something moves in the window and it's wobbling the content is updated live).

go play outside Skyler
Nov 7, 2005


I once made an AIM bot, called "RequestOBot" to take music requests from people. It would search in my music library (using a MySQL backend) and enqueue the track in winamp to be played on shoutcast radio.

It was loving fun to make, all 1000+ Delphi lines of it. Unfortunately I've changed computers since then and it just won't run for some reason, and I haven't taken the time to install Delphi 7 again (best IDE ever by the way).

I also made it insult back if you insulted it, just for the heck of it. I really wish I had a screenshot or AIM log of it or something, because I still think it's one of my greatest achievements! I used a lot of different libraries to ease the task though, mainly an Id3 lib (for scanning files in my directory), an AIM lib, the mysql dll. To enqueue tracks in Winamp I simply used a command-line switch. I did all the talk parsing by myself using a huge list of things people could say (à la Alice)

IIRC, a conversation would look a bit like that

quote:

Guy: Hey!
RequestOBot: Hi Guy, I'm RequestOBot. Do you want me to call you something else?
Guy: yes
RequestOBot: What do you want me to call you?
Guy: awesomedude, please!
RequestOBot: Alright, awesomedude, what song would you like me to play?
Guy: Do you have anything by Daft Punk?
RequestOBot: Here is the list of tracks I have that match the artist "Daft Punk":
1. Daft Punk - Harder, Better, Faster, Stronger
2. Daft Punk - Technologic
3. Daft Punk - Aerodynamic
Which one do you want me to play?
Guy: number 2 please!
RequestOBot: I've added "Daft Punk - Technologic" to my playlist, expect it to play soon!
Guy: Thanks, rear end in a top hat
RequestOBot: You're the rear end in a top hat
Guy: gently caress you!
RequestOBot: gently caress you too, awesomedude!
Guy: Do you have Kim by Eminem?
RequestOBot: I want you to say you're sorry
Guy: Do you have Eminem - Kim
RequestOBot: I already told you, I want you to say you're sorry
Guy: I'm sorry
RequestOBot: Apologies accepted.
Guy: Do you have Kim by eminem?
...

Some day I'll make it work again, and I'll let everyone of you enjoy it!

go play outside Skyler
Nov 7, 2005


LOLLERZ posted:

So how can you target AdSense ads appropriately when there's not really any text to work with?

As said above, try alt tags, titles, anything you can put in an img tag.

go play outside Skyler
Nov 7, 2005


Not really a screenshot, but it's my topic so I get to post whatever I want! :P

For a university project, I'm working on making "learn how to play a song" device that accepts any MIDI-compatible keyboard. Right now I'm only showing the midi messages on the LEDs but soon it will tell you which note to play, make a sound and show a "check" or a "cross" on the LED array on the right depending on if you played the note correctly.

It's so much fun

go play outside Skyler
Nov 7, 2005


Please tell me you're developing a fluid interface. I have a brand-spanking new digital cable box with DVR and HD, and the interface is to sluggish to change channels and to get the programs schedule that I want to throw my remote at it.

Seriously, you put in a loving powerful processor to decode HD video and decrypt all that data, but you make an interface straight out of 1997 with no picture-in-picture, program preview or more than 140 characters in the show description? loving shame on you, Cablecom.

go play outside Skyler
Nov 7, 2005


This thread has surpassed all my expectations! Thanks to all of you for contributing.

Here's something I whipped out today. I had an idea for an iPhone game using Augmented Reality concepts. I'm not going to go into more details because gently caress, I'm really convinced this could be the next great game (ha).

Anyways, here's a video showing off my results:
https://www.youtube.com/watch?v=G5GLIKIkd6E

It can deal with object rotation, morphing and even perspective!

go play outside Skyler fucked around with this message at 18:38 on Nov 4, 2011

go play outside Skyler
Nov 7, 2005


Just finished my portfolio/résumé website. It's all made using BootStrap thanks to a suggestion I saw earlier in the thread.



http://www.floriansegginger.ch

Please tell me if you find something weird/badly phrased.

go play outside Skyler
Nov 7, 2005


Jewel posted:

Status: Single
Llllaadies? :smug:
In europe we do Résumés a little differently. We need to give this sort of information (marital status, if you have kids, etc..) and a headshot is commonplace.

quote:

I like it though. Pretty easy to see what's what, which is what you need when you have a portfolio. Only thing I can see is maybe enlarging the "2012", "2011", etc, headers, so they don't look the same as the project name headers.

Thanks, I'll see what I can do without breaking the hierarchy :)

go play outside Skyler
Nov 7, 2005


akadajet posted:

éuropé sounds lovely. What's the headshot used for? Throwing out candidates who are ugly?

Well some jobs require you to have good hygiene. For example in a bank or things like that. If you look disgusting on your photo then, yeah, you kind of deserve to be thrown out of the pile.

Otherwise I guess it's just to give your CV a more "human" look.

go play outside Skyler
Nov 7, 2005


As a semester project, I have to improve the performance of an already built (in-house) Xylophone playing robot! This is by far the most awesome thing I've ever got to play with.
https://www.youtube.com/watch?v=mnRZ_Pj5k5Q

This is just my first test. You can't see in the video but it has 2 arms! I'll keep this topic updated once I get it to actually play something interesting :)

Don't mind the terrible noise, it's not coming from my robot. There's some construction in my lab right now and it's driving me crazy.

go play outside Skyler
Nov 7, 2005


lord funk posted:

Very cool. What's the fastest rhythm it can play? Can you do an insane robotic tremelo?

Right now the speeds are limited because of inertia and vibrations. The idea is to "dominate" this effect with software, but the key to getting it to play faster is to use its second arm and make shorter moves :)

That Turkey Story posted:

Whats with the picture of the flabby dude in the background???

This is originally a biomedical lab, so there are pictures of flabby dudes like that. I think it's showing some way of seeing the veins or something.

go play outside Skyler
Nov 7, 2005


Here is a project I've been working on for the past 6 months. It's huge.

The gist of it is: we're organizing a music festival, and to spice things up, we're transforming the entire building into a giant, interactive screen. Pimp My Wall lets you draw with your smartphone on a 3000 square foot wall.

The whole thing is in french, but the idea is that we're using a webapp (all coded in HTML5+JavaScript) so it's compatible with virtually every iOS or Android phone. Unfortunately Windows Phone does not deal with touch events and canvas very well, so they're out of the game.

Enjoy!

https://www.youtube.com/watch?v=z556DVzhJW4&hd=1

go play outside Skyler
Nov 7, 2005


Well, I can finally easily compose on my Xylophone playing robot.

https://www.youtube.com/watch?v=wdsUyoQw_Ho&hd=1

I just need to optimize a few parameters. I'm also waiting on an engineer who is making new hands for me. They should hit the bars in a more natural way, which will dramatically improve the sound. Enjoy!

go play outside Skyler
Nov 7, 2005


Claeaus posted:

Do this, record it playing a well-known song and you'll have a Youtube video with millions of hits.

I had this planned, but I'm still looking for a song that is:
- Popular
- Makes sense on a Xylophone
- Impressive enough to be played (Somebody That I Used To Know, for example, is too slow)

Any ideas for the head? I'm thinking Nic Cage or Cosby but I think I can do better.

go play outside Skyler
Nov 7, 2005


Sirocco posted:

Flight of the Bumblebee, man.

I will consider it, but it has its limits. The limit depends on how far apart are the notes, but from my tests it seems I can't go over 120BPM if I'm using sixteenths (semiquavers). I'm still fiddling with the motor acceleration ramps and such, but I'm reaching a physical limit of the design.

https://www.youtube.com/watch?v=AgDkr7CnKS8

I can play this at about 75% of the speed in the video, but the hands start overheating :)

go play outside Skyler
Nov 7, 2005


Well, after a lot of playing around with a high-speed camera and fixing various timing issues, Xylobot is now playing sixteenths at 130 BPM!

https://www.youtube.com/watch?v=0Xwfvl7t2LM

In about a week I will have one of the greatest YouTube videos of all time. I can't wait to have my photographer friend come over and film it for me with a nice, clean background and a proper mic.

e: bonus 500fps footage! You can see how much the entire thing vibrates when subjected to high accelerations (almost 12'000 degrees per square second!)
https://www.youtube.com/watch?v=Ykn8ILEvhDU

go play outside Skyler fucked around with this message at 21:27 on Jul 26, 2013

go play outside Skyler
Nov 7, 2005


Thermopyle posted:

That's really awesome.

If you ever did a detailed write up of what you did and the challenges you overcame, I'd read that like there was no tomorrow.

Well, this is my final bachelor's project actually so I am writing up a 60 page documentation, but it's all in french :) If the video gets a lot of success I'll definitely look into translating the interesting parts.

But to answer a few potential questions:
- It's coded in C++ on an real-time industrial-grade automaton
- I did not build the robot, I'm just the programmer.
- It's all object-oriented and super modular. The day someone decides to add more arms it will be a breeze
- I also made an app in C# that allows one to compose, attribute hands and calculate trajectories. The real-time app and the HMI (human-machine interface) can communicate via UDP and you can simply click "play" in the app and the robot starts playing



The real challenges were the following:
- Not breaking the drat thing. It's so powerful it could easily break your balls if you got hit in the sack. Many times I've had the arms cross themselves and had to press the emergency stop button before the thing breaks its own arms
- Figure out the physical limits of the thing, like what the gently caress is actually happening when it's doing <100ms movements, when it starts to vibrate too much, how much time does the hand take to go up and down, things like that
- Writing code and having a couple of LEDs as my only debugging method for at least 80% of development (I figured out a way to have some sort of console after a while but I needed to get the UDP server working)
- Solve the inverse kinematics problem (which turns out to be quite easy when you know "the trick")
- 64 megs of RAM and absolutely no OS protection, which means a segmentation fault results in OS corruption and a reboot of the entire thing which takes about 2 minutes. That adds up over time.

There are a lot more, but I would say debugging was the hardest part. It's just trial-and-error and when you've stood up to go turn the drat thing off and on for the millionth time you just get kind of frustrated.

go play outside Skyler fucked around with this message at 21:57 on Jul 26, 2013

go play outside Skyler
Nov 7, 2005


Seven Round Things posted:

C++ is my language of choice for desktop apps/gamedev, but I thought it was usually avoided on embedded systems/realtime stuff? Could you use exceptions/virtual functions/RTTI/STL/new/delete/etc, or was it more "C with classes"?

Well it's a little complicated, but I was basically using a framework developped at my school that extends a lot on C++. I basically had the whole thing, including a bunch of extra things like reflection which really helps when you're serializing/deserializing things and want to keep it flexible. It was a great tool and it's all implemented using a bunch of preprocessor directives.

For example, if I want to make a public attribute with a getter/setter, I'd write

code:
PROPERTY_GET_SET(int,SomeAttribute)
in my .hpp file, and it will automagically create GetSomeAttribute() and SetSomeAttribute(). Also it will keep it in a list somewhere and I'll be able to reflect upon that attribute. As I've said, it makes it really easy to serialize entire lists of objects without knowing what they contain.

C++ is really not that frowned upon on embedded systems, from what I've learned. It's just that it's usually overkill for most projects. But when you have Linux running on a processor, you can do whatever you like. You shouldn't stick to C just because you have more control or something like that. You should use the appropriate tool for the job. If you need the flexibility of python or something like that, go ahead. Embedded Systems are getting ridiculously powerful nowadays.

E: here is the website of the the framework I used. It's actually quite powerful when you start using their tools
http://objectis.ch/en-us/products/ostudio/conceptrt.aspx

go play outside Skyler fucked around with this message at 23:18 on Jul 26, 2013

go play outside Skyler
Nov 7, 2005


That Turkey Story posted:

As someone who does the vast majority of his coding in C++, this isn't really true. C++ supports exceptions and dynamic memory allocation, but they're not encouraged (as in, you still only use them when necessary, like anything else). Writing something in C++ as opposed to C shouldn't change what data you're dynamically allocating and what data you're not dynamically allocating, and similarly, using C++ as opposed to C shouldn't imply that you all of a sudden have more exceptional behavior (that would certainly be a scary thought).

In other words, in C++ you should still minimize dynamic memory allocation and aim to have operations that do not have exceptional behavior, just like in C, and this is true whether you're doing embedded work or not.

I couldn't have said it better myself! My software uses dynamic allocation for the soft real time task that feeds notes to the hard real time task that controls the arms. It's quite elegant actually :)

go play outside Skyler
Nov 7, 2005


A photographer friend of mine came over and filmed Xylobot for a while. I'm working on editing the video and making it great for YouTube. But while we're waiting, here's a few images of what he filmed. He is really good.






I have a 15 hour plane ride soon so hopefully I can find a socket to charge my laptop and I'll just edit it in the air :)

go play outside Skyler
Nov 7, 2005


Xylobot is now a virtuoso. Thank you all for your support and feedback. I have a few other videos up my sleeves, so make sure to subscribe!

https://www.youtube.com/watch?v=cpeOZfV-MII&hd=1

go play outside Skyler
Nov 7, 2005


Natrox posted:

For the past months in my spare time, I have been working on a toy virtual machine. The instruction set is very much based on the original x86/x87 instruction set, with a few instructions extra or missing. Programs are encoded in a byte code format, allowing an operation code, flags and two operands. The virtual machine runs the programs using a computed goto table, which makes for ugly but relatively fast code. It has 32 registers, a 1MB stack and a user-definable heap area. I am currently trying to implement the LEA instruction. As far as I know, the LEA instruction can be expanded to multiple MOV operations, which should make it pretty straightforward.

Here's a screenshot of my virtual machine running a Mandelbrot demo;



Programs can be made by hand using byte code, or they may be created in an assembler language specific to my virtual machine.

Here is the source of the Mandelbrot demo, if you are interested;
http://paste.pm/cbk.asm

Should be easy to understand for anyone familiar with x86-assembly.

Very interesting stuff. I always love people who make stuff just for the heck of it. You should post your source code somewhere or, even better, write a blog about it, explaining your process. I'm sure a lot of people would find it useful and interesting. I know I would.

go play outside Skyler
Nov 7, 2005


Natrox posted:

I am planning on making the code available on a GitHub repository sometime soon, hopefully by the end this month. Just haven't had the time to write proper documentation yet. For the future, I am looking into porting a small/limited C or Java compiler to my architecture.

Well, it's never a good idea to assume you're going to write the documentation. I've been through this a million times. It's better to publish undocumented, ugly and buggy code than not publish anything at all! Nobody's going to judge you. Just spend 10 minutes writing a readme explaining what it does and that's already better than nothing.

go play outside Skyler
Nov 7, 2005


Hey! OP here, yeah, the guy that made a robot that plays the xylophone.

This video is the result of more than a year of hard work and dedication.

Last year, we turned an entire building, our university, into a giant interactive screen! This year, we did it again, but much cheaper! And this time we managed to properly film it for your enjoyment!

https://www.youtube.com/watch?v=8ybKCOfjYvU

We used Raspberry Pis and a whole bunch of software we developed in JavaScript to make a distributed network of screens. Projectors aside, which were lent to us by our university, we had a budget of less than 1000$ and managed to pull it off!

Here we made an intro synchronised to music, but after that, anyone could whip out their smartphone and draw dicks on the windows! The video of that isn't quite ready yet, but we're working on it.

Details:
  • 30 Raspberry Pis, projectors, HDMI <-> DVI converters, cables, ...
  • 3000 sq. ft of screen
  • New drawing every 25 seconds
  • A drag-n-drop interface to create animations and compositions

All Pis are simply connected to the LAN and synchronised on a local NTP server.

This is essentially projection mapping on a very tight budget :)

go play outside Skyler fucked around with this message at 20:49 on Jul 15, 2014

go play outside Skyler
Nov 7, 2005


NorthByNorthwest posted:

I've been working on a cloth simulator with some friends.


The physics are computed using the stretch and strain of each triangle, instead of spring/mass forces.
For now it only uses symplectic euler integration, but I'm working on getting it to use implicit instead.

Super cool! Reminds me of the days I spent playing in 3D studio max's cloth simulator!

go play outside Skyler
Nov 7, 2005


Hey guys, I love pets and family as much as the other guy, but could we please keep it related to computer projects? (You know, screenshots of stuff we're working on)

I would hate to see a years old topic closed for derailing

go play outside Skyler
Nov 7, 2005


I wish every OS hid its scrollbars like MacOS.

Adbot
ADBOT LOVES YOU

go play outside Skyler
Nov 7, 2005


Synchronisation always becomes a lot easier with the more latency you're willing to accept.

What you've achieved is impressive! Is the content live? How much are you buffering?

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply