Idea to take GForce to an entirely new level...

Discussion forum for G-Force users

Moderators: BTT, andy55, b.dwall, juxtiphi

mobile1
Posts: 30
Joined: Sat May 22, 2004 3:16 pm

Idea to take GForce to an entirely new level...

Post by mobile1 »

I brougth this up a couple of months ago, but it seemed nobody had a clue what I was talking about. Maybe things are different now, so here it is again.

I think by implementing a Genetic Algorithm on a central server which delivers configs and receives config ratings from users, G-Force could be taken to an entirely new level. By config I mean a combination of delta/flow field, particles, color map etc.

For example when a user is running G-Force, a number of Configurations are being downloaded. Then G-Force is going through those configs. When the user likes a config, he can press the + key, when a user doesn't like a config, he can press the - key (or multiple times). Then the ratings of the configurations are being transmited back to the server. The server is then using the combined ratings of all users to provide each configuration with a fitness. Then the best configurations survive and do cross over (with a slight mutation) to produce new configurations to be sent out by the server and rated.

I think this would take this to a whole new level, pretty much weeding out bad looking stuff while improving the good looking stuff. This might even be platinum service product...

At the end what we have is one big evolving thing, constantly producing amazing grafics. Maybe even music speed could be included, which would result in different great looking configs depending on music speed...

Right now GForce is a set of beautiful building blocks that are being thrown together randomly - kind of like you throw together a couple of genes and look at the result. Can you imagine what this thing would look like if you arrange these genes to evolve towards beauty....I guarantee you it would blow your mind...

What do you guys think? Anyone out there who knows enough about Server / GForce Programming to be interested to try something like this? My part in this is that I can tell you exactly what the server program is doing or should be doing step by step. Of couse someone also would have to adapt GForce to download the server configs....
Last edited by mobile1 on Fri Nov 19, 2004 12:13 pm, edited 1 time in total.

opitzs
Posts: 10
Joined: Mon Oct 25, 2004 3:03 pm
Location: Germany

Post by opitzs »

In the ultimate conclusion, the server would only serve out configs, that look good on mainstream music, while at the same time weeding out configs, that look good only on a special kind of music (for example Relatives Menschsein, which are not mainstream).

So I don't really like the idea.
It would be good, when instead of just rating the quality of the config you would rate the quality in relation to the type of music. But then you would have to break it down even further, because each known music type includes so many bands, that you can't even compare them on a rational base.

In the end you would have to rate the configs in relation to a (Artist/Title/Mix) threesome, which would be of no value.

Sorry.
And that is not counting personal taste, which is even more important.

On a technical level it shouldn't be hard to do it, but to do it right you would have to throw out plenty of new configs in each generation, if your waiting for the ratings, etc., you get one or two generations a year, if you are really lucky.

But to what end? To find a config, that really is the best genetically engineered one? you'll never find that. There are too many parameters, that you would have to ignore to make this work. And given the change even a tiny modification can have, you wouldn't even be able to really determine a fitness value, because on minor change in a really bad config can make it a really good config. I know, I tried it the other way around ;)

Genetic algorithms can only be used to reach a specific goal, that is missing here.

Sven

User avatar
JayPro
Posts: 738
Joined: Sat May 01, 2004 10:51 pm
Location: Huntington Station, Long Island, New York

Post by JayPro »

Perhaps for those of us who might not be so wrapped about the axle on musical genre this might be of interest. IMO, in theory it might work; but it seems like alot of work given the current list of priorities.

It does sound interesting, though.
"God is syntax."

mobile1
Posts: 30
Joined: Sat May 22, 2004 3:16 pm

Post by mobile1 »

Opitzs- let me address your points

Works only on Mainstream:
Well I dont know how many million are using G-Force... but if you include for example beats-per-minute and a couple of other music characteristics into the GA, the Server would evolve several Config Configuration depending on the music that is listened. Of course it can't be split up too much for example to bands, but style is probably easily possilbe. Sure its not targeted on one band, but hey compare it to what you have now.... even if we include only basic music parameters the GForce's output would be massively better.

You only get one or two generation a year:
Wait I think you missunderstood something. The idea is not that everyone has their own server. The idea is that there is one server on the web. Whenever someone is running GForce they connect to this one server, download the best configs for all the styles of music... .then when for example 10 configs have been played the local GForce sends the ratings back to the server (if they were rated). So if you have a couple hundred thousand people using Gforce, you should get several generations every day for each music type.

You never find the genetically best engineeered config:
I agree, but in evolution this is not the goal. Are we humans the genetically best engineered species, no probably not, but we are pretty damn good. So I would settle for pretty damn good. .Besides our environment changes, and so would probably taste...which means the best config would constantly change - which is an advantage so you would get really cool configs every time you log on.

GAs can only be used for a specific goal which is missing here:
I dont agree, there is a specific goal. If Gforce is playing a config, you can individually judge whether you like it or not. In my idea the user can voluntarily rate it by pushing plus/minus and that rating then gets sent back - the perfect fitness function or as specific of a goal as it gets. The goal is to maximize this user ratings!!

There are too many parameters we ignored?
I have used Genetic Algorithms to design things, to create AIs to play 4 connect, to solve routing problems, to find the best locations for new businesses (which is what my business does professionally - very successfully). I teach AI - I know the parameters required for a GA. The hardest to come up with when using GAs is the fitness function or how do you rate an individual (or config). This is easy in our case as we would do an individual rating.

There is only one thing we need to think about - sometimes transitions between configs are really cool and not the configs. Here the question is what we do when a user rates a transition. Do we ignore it, or run an extra evolution on transitions....




JayPro-
I have seen the results GA's can produce and all I can say is that it would blow our minds!!! Right now with GForce we are looking at a Gene-Soup or a grey-gou. Imagine if you be looking at configs - comparable to small organisms or animals....
Now some think this is not possible. Well here is a link
http://www.frams.alife.pl/ and here are some pictures
Image

where someone has done the same thing to create simulated/virtual creatures that can walk and need to survive. They used simple genes which describe muscles, sticks and 3d built of a creature, sensors, gravity, hunters/prey, food etc... And the evolution produces walking 3d-creatures or swimming 3d creatures.
Image

You gotta see this to believe it
ImageImage

Compared to that task, to use a GA on Gforce would be a peanut.

I check into this forum about every year..... and I see that Gforce gets more stable, more host programs, more Genes, but an other major development that will blow your mind - kind of like when gforce came out first, I havent seen such a step. Gforce development is kind of like maintaining a space station in earth orbit. I think we should take this thing to Mars and beyond - even though there are glitches or errors left here and there. Other visualizations have caught up with GForce, lets use some collective/evolutionary intelligence and shoot this thing to Jupiter and kick some butt again (itunes etc...) :-)

What I want you, is to imagine what a "walking creature" quality GForce-config would look like on your screen!!

mobile1
Posts: 30
Joined: Sat May 22, 2004 3:16 pm

Post by mobile1 »

One more thing... in my posts by config I mean a combination of delta/flow field, particles, color map etc... Is config the right term or is there an other one?

User avatar
keycompton
Site Admin
Posts: 104
Joined: Thu Aug 12, 2004 11:09 am

Idea to take GForce to an entirely new level...

Post by keycompton »

Thanks for all of the discussion on this topic. We have actually thought extensively about development of functionality that enables rating configs and this is something that we are exploring in the near future... we are now working on a 3.0 Gold release that will have a lot of great interactive functionality and will provide the platform for us to develop config ratings and other functionality. Thanks for the great feedback!

-Key

mobile1
Posts: 30
Joined: Sat May 22, 2004 3:16 pm

thank

Post by mobile1 »

Thanks for the update - well after I didnt get any feedback at all on my first post a couple of months ago, I suggested this same idea to several other visualization programs - however I don't know what they are up to. I got an email back that they forwarded the suggestion to the developpers.

My guess is that whoever can roll it out first gets the glory (together with probably quite a bit of media coverage and users that sign up to see this evolutionary approach with mind blowing graphics).

Good luck and I hope you will be the first. If you need some help regarding the GA (no programming though) and how to implement evaluation, cross-over, mutation etc, let me know.

opitzs
Posts: 10
Joined: Mon Oct 25, 2004 3:03 pm
Location: Germany

Post by opitzs »

@mobile1:

I see your point. If you define a music style as an "environment" you are boundless, that is correct.

The point with several generations a day is possible in the beginning, but later people will get lazy with rating, while the GA algorithm has to wait for a threshold number of ratings, so there would be a significant drop in generations/day.

On the problem you mentioned, regarding users voting on transitions:
I don't think you see the problem right. The transition couldn't be voted on, because for the configs it doesn't exist. The configs change without a real delay. The next problem would be, that transitions would be dependant on the old config and the new config, plus perhaps the state of the old config.

One problem you haven't thought about:
There is a reason, why GAs are used quite seldom. Good GAs can give you results, that no human is able to understand. It works, but noone knows why. So those configs could be good on one computer, while they are bad on another. If you want, I can look up a quite convincing example for you, that shows, that GAs are able to give you results, that even scientists can't explain.

Sven

mobile1
Posts: 30
Joined: Sat May 22, 2004 3:16 pm

Post by mobile1 »

interesting discussion....

Why would people get lazy with rating? As long as G-Force gets downloaded and the community grows there will be plenty of people that rate configs and if your argument is true, then its only the new ones voting. However I dont see a reason why people would get lazy. Sometimes GForce looks so freaking amazing...you just want to tell everyone in the world or take a screenshot - now the simplest way would be to rate it.

Regarding the transitions, the entire GA could be built so that each individual contains 2 configs (the transition would be the one in between). When a user is rating a transition this will be the fitness assigned to this individual. IF a user is rating one config and the transition, the fitness would be the average of the ratings, the same if the user rates each config and the transition. This would pretty much solve the problem. Altenratively a seperate GA could run simply for transitions.... there are several ways to handle this.

Now the GA can produce results that no one understands.... well I dont need to understand why something looks cool. And if something doesnt look good, it gets a bad rating and is immediately weeded out in the next generation. There is no need to understand it. Besides the "black box" argument is more appropriate to Neural Networks then GA's.

User avatar
JayPro
Posts: 738
Joined: Sat May 01, 2004 10:51 pm
Location: Huntington Station, Long Island, New York

Post by JayPro »

Maybe I'm crazy, but here goes (with a brief background explanation for those of you unfamiliar with the code used for making effects, especially FlowFields).

Using the (rnd) or random parameter in what are called A and D Variables are applied frequently in order to produce an effect that changes over time. The more often these are used, the more varied the effect usually is. The drawback here, though, is that you can only do so much noodling with variables and adding on before the load time becomes just too much.

Having said that, how about this?

Once the new engine (i.e. greater expandability/versatility) is in place, maybe someone here can be daring enough to create an (rnd)-intensive effect that gives the impression of logically evolving from point A to point B instead of having it abruptly and illogically change from, say, a linear spread to x-y/r-theta swirls. See what I mean?

For instance, start with a linear spread flow field. Thenhave it change to a flow in a particular direction. The have that flow progressively tighten till you have a swirl. Then from that one swirl, have it split to two, then four, eight, sixteen, etc..., then change the circular swirls to square ones, square swirls to sine squares, sine squares to advanced polygons, "Tripping Hard" tailspins within those polygons, then bend the whole 2-D picture into a convex mirror.

Evolution! And sensible at that! I hope you see how this could be engineered, at least in the manner I'm (not too successfully) trying to illustrate.

Maybe somtime down the road, someone's gonna be brilliant enough to make particles demonstrating Darwin's theory in action! This is *eminently* feasible IMO.

There's an *awesome* program called Bomb made by a fellow named Scott Draves. It is based on a-life principles and can even react in a rudimentary way to music. But most importantly, it demonstrates many "species" of cellular automata and the like. It would be awesome to see how the technology that Andy has at his command might be used to create a-life that can dance to music!!

Why not??

Can you say "WaveShape-Conway's Game of Life"? ;)

Edited 11-23-04 for clarification
Last edited by JayPro on Tue Nov 23, 2004 2:18 pm, edited 1 time in total.
"God is syntax."

mobile1
Posts: 30
Joined: Sat May 22, 2004 3:16 pm

Post by mobile1 »

interesting idea of evolving wave shapes... the same GA principle could be applied to creating individual effects... however as mentioned there needs to be a rating... and a life, conways game of life etc are all cool, but framsticks above is really amazing... I really hope someone starts using this evolutionary approach for music visualizations....it will blow our minds...

Bobdabear
Posts: 2
Joined: Tue Dec 21, 2004 7:43 pm
Location: kansas

Post by Bobdabear »

I don't fully understad how this g-force thing works, but i do know java/asp/html.... and one thing i've learned is that user interaction can't always be depended on. Instead of leting a user vote why not just time how long they use each config(cause they arn't going to use the ones they don't like) and use that as a rating system? AIM started this 'rate a buddy' thing where ppl will submit their pictures and then have other AIM users rate it from 1-10... but there are always those retards that just go through and vote all 1's because they think its funny, which inturn just screws up the whole 'average vote' part. Its just a thought, but i wouldn't mind knowing what you guys think of it.

mobile1
Posts: 30
Joined: Sat May 22, 2004 3:16 pm

good idea

Post by mobile1 »

Ok checked back again after a long time - (about every year) - always hoping someone is doing the Genetic Algorithm thing - but it looks like we are still not there yet.

Regarding this last post - that's an interesting way to rate - however I don't think regular rating would be a problem, as long as the majority does a normal job rating what they see. If you look at wikipedia - everyone can edit anything without password or knowledge. Wikipedia works because the majority of people are open and honest with out bad intents.

Also the people who rate all 1s would just cause a slightly higher mutation rate - which means they will introduce new varieties of visualizations -that's the nice thing about using evolution, you can have any level of noise (like in real life) - it takes a lot to mess up the system - just look at how much we humans can srew up in the environment without anything large happening yet.

I PERSONALLY SEE A HUGE MARKET for selling subscription to such an evolutionary server.

mobile1
Posts: 30
Joined: Sat May 22, 2004 3:16 pm

one more thing...

Post by mobile1 »

I really like GForce - however at this point it simply is not compelling enough to me to purchase it. There are so many other free visualizers out there - and they all look good, and they all have random visualizations, and they all have amazing images, and sometimes images that suck.

So my question is that, what is the core value I purchase with GForce Gold or above.

- a couple of new flow fields and effects - I probably don't notice that it looks significantly better

- V-Bar - I don't know - to me it's simply distracting, why spending money on getting this patented. IF I WERE YOU get the Genetic Algorithm / Optimization idea patented.

- Bar to customize GForce - Most people run their music and use random visualization. So its a nice to have, but doesnt significantly increase the value to me.

- Screen Saver - well I think there are better ones out there - ever seen the Goldfish Aquarium (looks like real) - of course to visualize music you can't use that.

-My suggestion would be, FOCUS ON CORE principles - like visualizing music - and make that better, rather than branching out to Screen Savers, and other side accessories which are nice to have but don't add to reasons why people NOW suddenly need it want it, and buy it.

-I don't know, but so far a Genetic Algorithm is the only thing I can see that really would add significantly to a Gold or Platinum version since it provides a REAL ADDED value. In fact I would bet a dinner, that it would make GForce addictive - which is exactly what you want. And you can even charge a subscription - which from a business point of view is a lot smarter then constantly chasing new sales.

I think you guys need a major development step and take GForce and your company to a new level - your competitors caught up and are already better in some ways - invest the couple of weeks it would take to test this GA idea....

Or maybe (hope) your upcoming version 3.1 will be compelling enough. On the other hand if you would have done the GA in 3.1, that would be such a major step you would have named that version 4.0

Anyway that's just my humble opinion. I'll check back again in a year...

User avatar
chkman
Posts: 329
Joined: Mon Aug 08, 2005 12:36 pm
Location: Greensburg, PA

Post by chkman »

Breaker, breaker for Mobile1. Got yer ears on? 10-20?
I really like GForce - however at this point it simply is not compelling enough to me to purchase it.
You need a reason to purchase? Alright I'll bite on your project. I've read your post before and did a little research on this GA. I already had some ideas on a rating system. Maybe we could build it up into a GA thing.

I figure the easiest way to compare would be to pick one flowfield and then cycle thru all available waves. Next test is next flowfield and all the waves again. Once we have those results we could pick a popular combination and then start cycling thru the colormaps. There's not enough particles to go around (so far) so we won't worry about that at 1st. But if we could run a second wave as a particle (especially from script, listening Andy?) it would be more interesting.

Now I don't have any sort of API into G-Force. Unless Andy wants to set one up... Anyway, I could create a web page where 'testers' would download some scripts to run. But unless you have dual screens or two computers you'll probably have to watch G-Force in a window :( so that you can vote as you watch. We'll have to show in G-Force where we are at each step. How about a scale of -10 to +10 for voting?

Once results are in 1st generation, the only way to enjoy the surviving combos would be to watch scripts that we'd have to generate. Now to do the GA we need to go another generation, right? That's where things get a little tougher. I have done random colormaps and took a stab at flowfields as well. Now with the colormaps they look somewhat similar because of the algorithm used. But at least all were watchable but not so with flowfields.

Well my 1st attempt was to hard code a flow into the program. This had more variety in some ways than the later ones. 2nd approach was to read a few flows and randomly change the math outputting 2000 files. Problem was most were probably out of range coz they take a long time to calculate and do nothing or very little. Every so often one will have some action. Unfortunately the 'good ones' will start looking similar after awhile especially these circles or lines. But the problem with those I think is one parameter being zeroed out. My 3rd approach was to read in all flowfields separating A Vars, D Vars and the src assignments. Then the program output random lines to new configs. Again a lot of bad ones. However, if the program was a little smarter it would calculate along with what it's creating and sense zero terms or ones out of range and redo that part. I haven't done any rnd waves yet but we'll get to it...

So maybe next is where the Genetics come in. And I'd need some help. We need a plan to control how we are generating configs. We need some kind of language to describe the genes. And do flows evolve separately from waves or can each combo grow on its own? If so, are colors included? Then we'd have to include particles?

Well, Mobile1 you're the expert, can you draw up a flowchart for me? :wink:

This seems pretty complicated. I was just starting on a server that would allow people to design scripts for individual songs. They would be stored in a database and anyone could search for an artist/song to download any script created for that song. Now that sounds a lot easier than the above.

One thought I had for this server was to organize the configs into groups that could populate some combos on the form. Like Red, Blue, Rainbow, etc for colors. Tunnels, swirls, wallpapers for Flows. Waves, similar shapes etc. So, if someone got tired of the original scripts they could get a randomized version based on the lists that were originally picked from. Now if Andy would implement lists in the scripts they could be randomized each time by G-Force eliminating the need to download again. But could your GA be implemented here somehow? A song needs a backbone of the timing, when to change the configs but again, can we throw GA in or at least use the results of GA to add to these lists? But then it would have to be more than individual configs listed for a script designer to pick from. That would be a lot harder and some people might not want to do that. They might be thinking change a wave here and a flow there. And they might not want to be limited in our GA combinations.

Oh yeah, back to the rating system I forgot flowfield unions. What flows are good to combine with others and with which unions? And how does that affect the wave? A wave good with one flow might not be as good when it's combined with another. And the voting: each flow unioned with every other flow? Oh my, this could take a long time.

Thinking back to what I 1st said about cycling thru all flows if we had groupings of similiar ones, it would simplfy the testing.

Now, I'm tired thinking, I'm going to watch some G-Force Platinum which BTW you'll need to purchase to see unions.

Let me know what you think.

Post Reply