POIBOT ~ v0.5 Has arrived

:arrow: VERSION 0.6 OUT NOW Sphism/smilesmiley

http://www.spherculism.com/help/poibot_009.html

Right, I've been busy programming this over christmas.

It's still got a long way to go but it's aleady got some great funcionality.

I've started you all off with a basic 3 beat weave.

From there you can:

Alter patterns in x,y,z axis (taken from 3dmax so no complaining about which is which!!!)

You can alter speed and spin direction of poi.

Change the maxBeat value, this determins how many half circles there are for 1 poi to do the whole pattern. ie 3 beat weave has maxBeat=6, 2 beat butterfly, maxBeat=4

Theres a slider for Isolate or giant variations

you can change the plane, wheel, wall, floor

And you can play with the pattern loader, which i'm still working on. This is where i'll put all the preset patterns for everyone.

See what you can do, 5bt Weave is pretty easy, isolated buzzsaw isn't too tough either.

ENJOY, feedback much needed,

¦m¦

Category: 

Comments

great stuff .. wow I'm impressed 8O Sphism/gigglesmiley .. more by this than by the parametric equations from NYC
gotta fiddle with it a bit to feedback you

cheers olive,

i wanna hear what people can make it do.

Challenge:

Make poibot do a 3 beat butterfly Sphism/smilesmiley

I really need to learn how to save the patterns to a text file on the server so that you can save and load other peoples experiments.

Anyone know how to save and load .txt. or .php files from Flash to my server? I vaguely know but it never seems to work.

m

Nifty looking Sphism/smilesmiley Does indeed seem to need some work in some areas - changing the initial weave into wall plane doesn't actually give a wall plane weave for instance, but I'm very impressed and look forward to more funkiness Sphism/gigglesmiley

that's because the pattern is still in the x axis, if you transfer the pattern to the correct axis you'll get the 'move' you want Sphism/winksmiley

I'm gonna make a button so you can copy a pattern to a different axis, kinda like the shift buttons that move the pattern up and down beats.

Once the pattern loader is finished you'll be able to load stuff the way you want to.

m

This is amazing.

You are a God.

Simple trick...

From a weave to a butterfly weave, just flip the red poi's "direction".

Took me two damn years of arguements to figure that one out and I could have gotten it in a second with this. Sphism/gigglesmiley

That's F'ing awesome!
Must find time to play with it Sphism/gigglesmiley
:5

Just got a 3beat TTN.

Damn.

I should go get some real work done. Sphism/sadsmiley

Matt- thats fantastic, a brilliant achievement- haven't played with it much but from what I've seen so far this has so much potential (and realised potential)

Now I've just got to get it working on my phone and I can plot patterns on the tube Sphism/gigglesmiley

Chut

Cheers poiple, i love it too.

NYC: please send me any pattern you make. You can either press Ctrl + PrtSc (print screen copies what ever is on your monitor to the clipboard) then paste into a new file in photoshop (or similar) and save a a jpeg.

Or it might be easier to just tell me.eg

x-axis: ALL Lo
y-axis: hi, hi, lo, lo, mid, mid
z-axis: All Hi

or something like that

Today I managed to load variables from a txt file on my pc and hopefully by tonight i will have managed to save files to a new text file. Then you can just open the text file on the server (or your pc) and copy the text into a thread. or something

Anyone know how to use loadVars(object) in FlashMX ?????

m

i wish i had a computer that played flash properly so i could play with this porpperly now. im gonna sneak onto my dads later and have a play there i think Sphism/smilesmiley

sounds kicking though Sphism/gigglesmiley

although you do realise im not gonna be happy til its got style Sphism/coolsmileySphism/tonguesmiley you reckon its possible to program style? seems to me thats mostly what poi is about though.

maybe you could giveit a brain and it could learn style. i remember a while ago rev was telling me some science dudes had managed to link a few bbrain cells up to a flight simulator and eventually 'the brain' taught itself to fly. or i think thats how the story went...

:5 :7 :5

Very nice! Good job! Revolutionizing the Poi world - once again Sphism/gigglesmiley

Ill have to play with it a little bit more ...

:idea:

That is most impressive Sphism/gigglesmileySphism/gigglesmileySphism/gigglesmiley

Realised last night that not only can poibot be easily modified for say staff or meteor, but it could also be altered for diablo, 2 diablo, or even contact juggling.

m

Dude, that is awesome, plain and simple

could you colour the persons body so you can see which hand would be holding which poi to see the leading hands and when arms are crossed etc?

Will do, the arms will match the colour of the poi

While you're at it can you make the poi disapear when they go behind the little man? it does it on the left view but not the front which means any reels look pointless.
And maybe an isometric view...? 8O

does anybody else get a weird stop and flash when the pattern loops? Maybe it is because of mozilla... It shows up some weird shit over the top left and right guys too.

I do too mcp.

other than that matt, excrement!! thats quality, will play more after revising! just tryin to work out what the lil XY + Z up dn thingys do lol

Jim

screw isometric, i want perspective view with fully movable camera Sphism/smilesmiley

left view was the first to have the person set to level 0 so the poi appear behind it. I'll hook up the other views too

yeah meg, when it loops it reads the 7th beat for a sec and then loops. The original didn't then it picked up a glitch, easily sorted.

m

looks great! With loadVars, you mean loadVars(url)? I might be able to help with that, it's been a while. Why not use xml instead? I can send you a wrapper class to use that makes using xml really easy in flash if you'd like. Send me a pm if you want matt. Great job tho, still needs some work(the math needs some refining), but is definitely a great start. Did you use a 3d to flash program(like swift or illustrate) to make some of the animations? Thanks for doing this.

musashii: indeed i mean loadVars(url).

I want to send all the variables to a txt file on the server so that people can save pattterns they make.

Then I want to be able to load the variables back from that txt file so anyone can load any pattern.

that is, i don't wanna have to preset every combination and even if i did it would never be up to date. If everyone can update it all the time it'll be sweet Sphism/smilesmiley

On another note. How possible do you think it will be to get poibot to define say "3 Beat Butterfly Weave" or "Isolated 5 Beat Buzzsaw Weave"???

I mean if it knows all the variables (eg poi going in same directions, split time etc) and it knows the pattern for each axis. Surely it can say what that pattern is ~ if we got the system right it might even clear up a lot of conversations about what moves are what.

just a thought,

Working on a slightly updates version with a "Randomise All" button, i'll upload it before i go home tonight.

¦m¦

randomise is wicked, you're gonna love what poibot can do

gonna code a random freestyle mod

just put some basic arms on the bugger Sphism/smilesmiley

Sphism/gigglesmiley

http://www.spherculism.com/help/poibot_009.html

Click the link above for new version of poibot v0.6, now with arms (kinda)

:47 :47 :47 :47 :47 :47 :47

Randomise All: This button will randomise every variable including speed, direction and isolation/giant.

Freestyle On/Off: This button randomises the previous beat so next time that beat repeats it will be different. Infinite, random freestyle Sphism/smilesmiley

You can then tweak the slider setting to get a proper pattern.

My mate Rikets called me while i was making this, he tells me he has a degree in artificial inteligence and "Please can i put some AI in poibot, let it make decisions for itself"

I'll be meeting up with Mr Rikets to discuss Sphism/winksmiley

enjoy,

¦m¦

SICK

AS

FUCK

Those arms look pretty uncomfortable Sphism/winksmiley
Could you possibly have an option to switch the path from following directly from one input to the next, to following a kind of fitted curve drawn out by the inputs? It might make it look a bit less 'robotic', not that it's always a bad thing... Sphism/winksmiley

StoneT you're totally right

At the moment if say a hand moves from left to right it follows a straight line graph. I think it's probably more like a sine wave, ie the motion starts slow, accelerates toward the center then slows down near where it stops.

Perhaps by altering how it goes from point to point we could add a little style??? Robotic Or Flow

m

horizontal / floor plane is a bit fucked....

Fantastic Sphism/gigglesmileySphism/gigglesmileySphism/gigglesmiley

Hey matt i love it man. I like the idea and i see you have a great love for programming Flash MX Just like me.

I would love to help you with it ill show you some of the stuff i made.

Latest Game...Volcano Runner :: http://img122.exs.cx/my.php?loc=img122&image=bouncermxfinalagain0vb.swf

Easing :: http://img122.exs.cx/my.php?loc=img122&image=easing2qy.swf

Easing Varation :: http://img122.exs.cx/my.php?loc=img122&image=easing16tp.swf

Another Varation :: http://img122.exs.cx/my.php?loc=img122&image=easingrandom6au.swf

I also love API. Thats where you make thinkgs using only code. Here check these out. Just copy and paste straight into your actions panel

Change Background Colour to BLACk
Change FPS to 25
Change Stage Width to 550 and Height to 100

Copy and paste

[code:1]
sw = Stage.width;
sh = Stage.height;
side = 12.7;
function addBoSphism/angrysmiley) {
addedBox = createEmptyMovieClip("box"+i, i++);
addedBox.lineStyle(1, 0xFFFFFF, 0);
addedBox.beginFill(Math.random()*0xFFFFFF);
addedBox.lineTo(side, 0);
addedBox.lineTo(side, side);
addedBox.lineTo(0, side);
addedBox.lineTo(0, 0);
addedBox.endFill();
addedBox._x = sw-30;
addedBox._y = Math.random()*sh;
addedBox._rotation = Math.random()*180;
addedBox.xspeed = Math.random()*3+7;
addedBox.yspeed = Math.random();
addedBox.rotation = Math.random()*5+10;
addedBox.up = Math.random()*1<0.5;
addedBox.left = Math.random()*1<0.5;
addedBox.onEnterFrame = function() {
this._x -= this.xspeed;
this.up ? this._y += this.yspeed : this._y -= this.yspeed;
this.left ? this._rotation += this.rotation : this._rotation -= this.rotation;
if (this._x<0) {
this.removeMovieClip();
}
};
}
setInterval(addBox, 100);

[/code:1]

A Varation to this is

[code:1]
sw = Stage.width;
sh = Stage.height;
side = 12.7;
function addBoSphism/angrysmiley) {
addedBox = createEmptyMovieClip("box"+i, i++);
addedBox.lineStyle(1, 0xFFFFFF, 0);
addedBox.beginFill(Math.random()*0xFFFFFF);
addedBox.lineTo(side, 0);
addedBox.lineTo(side, side);
addedBox.lineTo(0, side);
addedBox.lineTo(0, 0);
addedBox.endFill();
addedBox._x = sw-30;
addedBox._y = Math.random()*sh;
addedBox._rotation = Math.random()*180;
addedBox.xspeed = Math.random()*3+7;
addedBox.yspeed = Math.random();
addedBox.rotation = Math.random()*5+10;
addedBox.up = Math.random()*1<0.5;
addedBox.left = Math.random()*1<0.5;
addedBox.onEnterFrame = function() {
this._alpha -= 1.75;
this._x -= this.xspeed;
this.up ? this._y += this.yspeed : this._y -= this.yspeed;
this.left ? this._rotation += this.rotation : this._rotation -= this.rotation;
if (this._x<0 || this._alpha<=0) {
this.removeMovieClip();
}
};
}
setInterval(addBox, 100);
[/code:1]

Another Varation which looks cool is

[code:1]
sw = Stage.width;
sh = Stage.height;
side = 12.7;
aa = Math.random()*6;
ab = Math.random()*6;
ac = Math.random()*6;
function addBoSphism/angrysmiley) {
addedBox = createEmptyMovieClip("box"+i, i++);
addedBox.lineStyle(1, 0xFFFFFF, 0);
addedBox.beginFill(col);
addedBox.lineTo(side, 0);
addedBox.lineTo(side, side);
addedBox.lineTo(0, side);
addedBox.lineTo(0, 0);
addedBox.endFill();
addedBox._x = sw-30;
addedBox._y = Math.random()*sh;
addedBox._rotation = Math.random()*180;
addedBox.xspeed = Math.random()*3+7;
addedBox.yspeed = Math.random();
addedBox.rotation = Math.random()*5+10;
addedBox.up = Math.random()*1<0.5;
addedBox.left = Math.random()*1<0.5;
addedBox.onEnterFrame = function() {
this._x -= this.xspeed;
this.up ? this._y += this.yspeed : this._y -= this.yspeed;
this.left ? this._rotation += this.rotation : this._rotation -= this.rotation;
if (this._x<0) {
this.removeMovieClip();
}
};
}
setInterval(addBox, 100);
_root.onEnterFrame = function() {
red = Math.sin(aa += .02)*127+128;
green = Math.sin(ab += .05)*127+128;
blue = Math.sin(ac += .09)*127+128;
col = red << 16 | green << 8 | blue;
};
[/code:1]

Those are a few i have loads more varations.

Heres a few more

Change Background Colour to BLACk
Change FPS to 30
Change Stage Width and Height to anything you want

[code:1]
sw = Stage.width;
sh = Stage.height;
aa = Math.random()*6;
ab = Math.random()*6;
ac = Math.random()*6;
i = 0;
function shapecreate() {
shapey = createEmptyMovieClip("shape"+i, i);
red = Math.sin(aa += .02)*127+128;
green = Math.sin(ab += .05)*127+128;
blue = Math.sin(ac += .09)*127+128;
col = red << 16 | green << 8 | blue;
with (shapey) {
i++;
lineStyle(Math.random()*5+10, col, Math.random()*50+50);
moveTo(Math.random()*sw, Math.random()*sh);
lineTo(Math.random()*sw, Math.random()*sh);
shapey.onEnterFrame = function() {
_alpha -= 2;
if (_alpha<=0) {
removeMovieClip(this);
}
};
}
}
setInterval(shapecreate, 100);
[/code:1]

Also I was bored so i made a few text tools.

A program which counts the number of letterts in some text :: http://img122.exs.cx/my.php?loc=img122&image=codewordcount1at.swf

And a program which does all the ceaser shifts to some text :: http://img122.exs.cx/my.php?loc=img122&image=ciphershifterfinished5xn.swf

Well thats it i have loads more experiments to show but it would take up to much time. so thats it.

If you like anything contact me at

Hope you like it

~Amish

Hey Amish, that stuff's really cool. I've got a load of flash experiments, i'l dig them out and stick them on line somewhere.

I do love a bit of actionscipt. I'll make the fla file available when i've tidied it up a bit.

Started learning director so i can make a fully 3d version of poibot, so there probably won't be any more tweaks to poibot v0.6 in flash, youll have to wait for v1.0 in shockwave.

As for the horizontal plane, the problem is that poibot is way too tall Sphism/gigglesmiley

m

Matt, that's fuckin' awesome.

I'm Natas, a buddy of Matt(NYC). I did 3D computer graphics and virtual reality programming for 7 years. So if you need any help with the 3D algorithms, let me know.

Getting the arms to move naturally is a pretty tough problem (solving multiple simultaneous equations with constraints), but doing the move from the text description is doable, just need a little parser with the basic patterns defined.

Adding some trails of variable length would be cool to see where the poi have been, to look sort of like zuni poi, or those trails you see when you're.... yeah, whatever.

Damn nice work!

Find me on AIM if you wanna chat

yeah man id love to share ideas. I cant wait.

Also where are you learning director is it the same as flash or harder. I would love to learn it.

I think Director's harder, at least in the programming environment, Lingo is alot more difficult to use than javascript.

Hey matt, it looks like Shockwave understands IK rigging from 3ds max, so in theory you should be able to import your constraints from your IK rig, just means a little less programming in the end. If you need a fully rigged human body, I'm probrably not the only person here you could get one from, from the sounds of things Sphism/winksmiley

This page also has a link to the shockwave export plugin for 3ds max.
http://www.macromedia.com/devnet/mx/director/articles/char_anim.html
main index page
http://www.macromedia.com/support/director/work_3d/models_use_in_sw/index.html

Ahh, here we go. Lingo Bones, an api to program Bone rigs. That seems to be what you'll need for director.

here's the entire scripting ref, I found lingo bones buried in the 3d objects area
http://livedocs.macromedia.com/director/mx2004/release_update_en/wwhelp/wwhimpl/js/html/wwhelp.htm?href=20_3d_a3.htm

Hope this helps, you may well already be past this :twisted:

ImmortalAngel said about the juggling simulator a while back

"That was the sole most amazing computer simulation program I have ever seen...
And yes, the cries of joy will be heard all over the world the day we get one of those for Poi."

I heard those cries Sphism/smilesmiley

musashii ~ i've been getting busy with director and it ain't so tricky. We've made a little 3d driving game. You get to drive a tortoise around a track that was used in a recent hotwheels game (my flatmate works in the games industry doing 3d models and texturing) the track detects collisions with the tortoise and there's even a couple of jumps. It's wicked.

I've been playing with the Havok engine too. Which simulates real world physics amazingly well.

check this site out:

http://www.fbe.unsw.edu.au/Learning/Director/3D/Havok/

Making a boned character in max is not too difficult, adding the relavent physics is about as difficult as picking 'havok' from a list Sphism/smilesmiley

I'm hopefully gonna be landing a sweet freelance job using director ~ fingers crossed everyone. If this work comes about i'll have to learn lingo very quickly and poibot 3d will come about pretty soon after that.

¦ Sphism/smilesmiley¦

Wow... Someone had a lot of time on their hands... *lol at the irony*

Very pretty. Well done! :5 :5 :5

ahh, thats great man..I was wondering wtf Havok was until I saw that reactor is made by havok. Pretty nifty that you can import all of those physics dirtectly from 3ds. Reactor's a great plugin Sphism/smilesmiley

Does the latest version of director allow you to script with languages other than Lingo?

You can use javascript too, which is very similar to actionscript but i'm trying to learn lingo.

Last night i managed to make a poi (torus for a handle, 5 cylinders for the sock and a sphere for the head). Bone it together with dampened springs and apply the physics.

It's wicked, moves aroung in 3d very much like a poi moves ~ well, i very stretchy poi being spun in treacle but pretty close and totally interactive, i.e you can click and drag any part of it and the rest moves as you would expect.

Very cool indeed.

¦m¦

I think the one advantage that javascript over lingo is how it's a bit more object oriented, one big preference for me anyways. You have it rendered in shockwave?? heh, you definitely get props for adding the stretchiness of socks. Hyperloops will be a bitch to implement methinks Sphism/winksmiley

shockwave automatically detects collisions in 3d, hyperloops and wraps are not too hard Sphism/smilesmiley

I've a feeling that the only difference in director between using lingo or javascript is the syntax but it's nice they've added that option.

1st damn
2nd DAMN

looks awsome matt Sphism/gigglesmiley
can u make it downloadable?
iv can only use it for a min before the browser cuts out and i lose whatever iv been simulating. also some times the arms fuck up (they go through each other) no biggie tho.

yeah once some of us get used to using it then it won't be 2 long before we nail all the basic patterns.

nice work Sphism/tonguesmiley

Yeah, it can be downloadable, in fact if you have used it on your pc then you have already downloaded it Sphism/gigglesmiley try searching for 'poibot'.

That's weird that it turns off after a while tho. Which internet browser are you using? Spherculism runs best (as do most things) on Mozilla Firefox.

But if you just find the file on your puter then it should work fine, or of course you could 'make available offline'

Just need to find an easy way of allowing you guys to upload patterns. My flash skills aren't yet good enough to upload patterns to the server. How about if poibot just spits out a load of text on the screen which you can copy and paste into a thread on the forum, then if you wanna check out that pattern you could just copy it and paste it into poibot ~ not a very elegant way of doing it but at least it would be a start. I'm learning how to integrate flash and php at the moment on another project so it shouldn't be too long before i can code a better method.

enjoy,

matt

Well Damn! 8O

This is so sweet! Just found it as I seemed to miss it while on my holiday!

Great work! Sphism/gigglesmiley

***Garth hangs head in shame cause he said he'd do something like this and never got around to it***

Sooo Much better That I caould have done. You have the programming skills and the artistic talent. My programs always look like crap and I never finish them!

No we just need an addon that translates Revs posts to moves on the poibot!

(Just kidding Rev Sphism/winksmiley I'm starting to understand some of your posts now after finding my own way there. Still way behind you but looking back on some of those earlier posts I got confused on I'm starting to see the light. Anti spin rocks! Sphism/gigglesmiley Although you have moved on since then! )

Nice work Matt!

cheers garthy, I love flash cos you can do the coding then add whatever graphics you like to it very easily, wouldn't be hard to cut out my face, torso, arms and legs and stick them on.

you might be able to help tho.

I need to figure a way that poiple can play with poibot then save what they've done to the server.

Then anyone else can load the script.

I figure saving a big array of all the variables to a txt file on the server, i think i can do it but i've never tried ~ found a great tutorial on similar stuff tho.

Take it easy, sorry i couldn't make it to bristol for your birthday, gutted i missed it actually.

m

Hey mat you wouldnt by an chance want to release the fla for poi bot would you. You knwo so we or i could take apeek at the programming??

I will do once it's in a good state to release, at the moment loads of it needs to be put into functions and generally tidied up, plus i'll go through and put a few useful comments in it.

I opened it up the other day and had absolutely no idea how it worked Sphism/gigglesmiley

What kind of coding do you do? I only ever learnt a tiny bit of pascal and even less c++ and then self taught actionscript, so my code's pretty messy generally but i'm getting better.

m

how did i miss this shit?!!??

matt, you seriously rock dude Sphism/gigglesmiley

cole. x

Pages