0% found this document useful (0 votes)
210 views5 pages

Boygrouping Basics - VVVV

Boygrouping allows controlling multiple "client" computers from a single "server" computer running vvvv. The clients receive patching instructions from the server over the network. To set up boygrouping, the server and clients must have identical directory structures and resources. The clients are started with the "/client" parameter pointing to the server IP. On the server, a Boygroup node configures the connected clients. Nodes can be "boygrouped" blue to run on the clients, while connections between blue and gray nodes transmit data over the network each frame. Boygrouping provides synchronized rendering and playback across multiple computers.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
210 views5 pages

Boygrouping Basics - VVVV

Boygrouping allows controlling multiple "client" computers from a single "server" computer running vvvv. The clients receive patching instructions from the server over the network. To set up boygrouping, the server and clients must have identical directory structures and resources. The clients are started with the "/client" parameter pointing to the server IP. On the server, a Boygroup node configures the connected clients. Nodes can be "boygrouped" blue to run on the clients, while connections between blue and gray nodes transmit data over the network each frame. Boygrouping provides synchronized rendering and playback across multiple computers.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

20/12/2015

BoygroupingBasics|vvvv

Screenshots

Propaganda

Users

Licensing

Blog

Forum

Documentation
Learning

Contributions

Using vvvv

Topics

Downloads
Node Reference

Search
Devvvveloping

vvvv Documentation Using vvvv Boygrouping Boygrouping Basics

Website

anonymoususerlogin

BoygroupingBasics
View

Edit

Mandarin|French|Spanish|Italian|Russian

HardwareSetup
DirectoryStructure
PreparationsontheClients
PreparationsontheServer
BoygroupPatching

Shoutbox

Thebluenodes
Bridges
Warnings

~2dago

ClientID

tekcor:Monome
Compilationwithhighend
VVVVmusicvideo
http://www.symbioticcube.com/monome
compilation/

FullscreenonClients
SynchronizedVideoPlayback
RemotingClients
FAQ
WhydoesCTRLBnotwork?

~2dago

Itseemsthatbangsarenotarrivingonclientsrandomly?!

bjoern:
https://www.youtube.com/watch?
v=KTrgRYa2wbI

WhichnetworkportsdoesBoygroupinguse?
Boygroupingdenotesvvvvsbuiltinclientserverarchitecture.Itallowsyoutocontrolanynumberofrender

~2dago

computers(i.e.clients)fromasingleserver.Whileyoudoallthepatchingonlyontheservervvvvtakescare

sunep:Can'twait,itfeels
likeChristmasiscoming
soon.

ofalltheconnectedclientstorun

n'sync.Applicationsofboygroupingareusuallymultiscreensystemsor

seamlessmultiprojectionsetups.

~2dago

joreg:relatestalpha:
blogpostwithexplanations
imminent..
~2dago

sunep:whyisthelatest
alpha230MB?
~2dago

skyliner:
https://vvvv1.bandcamp.com/
~2dago

microdee:@joreg:itis
beautiful...
~3dago

joreg:don'tyoutouch
'em
~3dago

Inadvancedsetupsitmaybenecessarythataclientlistenstomultipleserverswhichcanbeachievedusing
MultiBoygrouping.Butfirstmakesureyouunderstandtheclassicsetup:

HardwareSetup
Aboygrouptypicallyconsistsofadedicatedserverpcandanynumberofclientpcsconnectedviaethernet.
Gigabitconnectionsareofcourserecommendedthesedaysbutwe'vebeenusingboygroupingwithvvvvalso
backwhen100baseTwasstilltopofthepops.Wirelessworksbutisnotrecommendedasitwillsee

u7angel:thepacksfolder
ispackedwithgoodies:)
~3dago

guest:Somethinggoing
oninthenewAlpha...
readmore
followontwitter

considerable
Thesimplestboygroupwouldconsistofonlyaserverandoneclientpc.Insuchasetupyoucouldevenusethe
serversfullscreenoutputasoneofthemainoutputs.However,dependingonyourpatchespower
consumptions(sotospeak),thismaynotbeanoption.Oftentheserverrunsatalowerframeratethanthe
clients,asithassomemoreworktodo.

DirectoryStructure
Itisgenerallygoodpracticetocreatedirectorystructurelikethefollowingwhenworkingonaspecificproject
withvvvv:
C:\MYPROJECT\patches
C:\MYPROJECT\resources
C:\MYPROJECT\vvvv

http://vvvv.org/documentation/boygroupingbasics

1/5

20/12/2015

BoygroupingBasics|vvvv
Inaboygroupsetupspecificallyitisnecessarytocreateanidenticaldirectorystructureontheserverand
allclients.Notethough,thattheclientswon'tneedthe.v4pfilesinthe\patchesdirectory,astheywillreceive
alltheirnodesmagicallyfromtheserver!Stillyoumaywanttoplace.fxor.dllfilesinthisdirectoryonthe
clients,iftheyarealsothereontheserver.Alsoitisnoproblemiftheclientsalsogetallthe.v4pfiles
mirroredaslongasyouunderstandthattheywillnotbeused.
Boygroupingdoesn'ttransmitanyresources(textures,videos,effectfiles,..)overthenetwork.Onlyprimitive
data(values,strings,colors,enums)isbeingtakencareofautomatically.Thereforeallresourcestheserver
patchaccesseshavetobeavailableontheclientsfilesystemaswell.Synchronizingthedirectorystructureof
aserverwithmultipleclientscaneasilybeachievedwithadditionaltools.HavealookatRemoterSAor kalles
filemodules.

PreparationsontheClients
Theclientsideofpatchingisrathertransparent.Actuallynopatchingneedstobedoneatallonthe
clients.Allyouhavetodoistostartvvvv.exewiththe/client[ServerIP]commandlineparameterlikethis:
vvvv.exe/client192.168.0.100
Assumingthat192.168.0.100istheipaddressofyourserver.You'llseethatvvvvisindeedinclientmodeas
itpopsupadefaultpatchwiththetitle//CLIENTof192.168.0.100

PreparationsontheServer
Ontheserverstartvvvvwiththe/servercommandlineparameterandnotethatvvvvsbuttoninthetaskbar
nowdisplaysSERVER!toindicateitsmode.
IfyourserverPChasmorethanonenetworkadapterthatareassignedtodifferentnetworksyouneedto
specifywhichonetousefortheudpbroadcasts.Youdothisviathe(hidden)BroadcastIP
Boygroup(VVVVServer)

onthe

byspecifyingabroadcastaddressonthesubnetyouwanttheboygrouptooperate

on,like:192.168.178.255(ie.withthelastbytesetto255).
Totelltheserverwhichclientsithastodealwith,createaBoygroup(VVVVServer)

node.TotheClients

of

thisnodeconnectaspreadofIPaddressesofallyourclients.Usuallyyou'llenduphavingapatchsimilarto
this:

NotethattheBoygroupnodes'outputcarriesaspreadofbooleansindicatingtheconnectedstateofthe
individualclients.Ifeverythingissetupcorrectlyafewseconds(<10)afterstartingtheclientstheyshould
showupasbeingconnected.
Ifyoudon'tgetaconnectionthefirstthingyoushouldtryistodisablethefirewallonthe
server/clientsordefinearuletoallowvvvvand/ortheportsitusesforboygroupingthroughthe
firewall.

BoygroupPatching
Thebluenodes
OnavvvvinstancerunninginservermodethekeyboardshortcutCTRL+Ballowsyoutoboygroupindividual
nodes.Boygroupednodesaredippedinbluewhichindicatesthattheyhavebeenmirroredtotheclients(even
ifyoucan'tseethemthere)andarenowbeingcalculatedoverthere.
UsuallyyouwouldstartwithboygroupingaRenderer.Notehowvvvvautomaticallyboygroupssome
neighbouringnodes.Thisisbecausenodesconnectedvianodeconnections(liketransforms,textures,audio,
video,layers,...)needtobeconnectedonthesamesideofthenetwork.TakeThatasitis,itsautomatic
anywayandhardlyneedsanyfurtherthought.
Howeverwhatneedssomemoreunderstandingiswhichnodesapartfromthoseautomaticallyboygroupedyou
shouldboygroupmanuallyforbestresults.Thereisnogeneralrulelike"boygroupasmuchyoucan"or"less
boygroupisgoodboygroup".
Insteadbeawarethatalldatarunningonconnectionsbetweenboygrouped(blue)andnormal(gray)nodesis
beingtransferredoverthenetworkeveryframe(onlyiftheyarechanged,ofcourse).Thereforeyoushould
takecareofthoseconnectionsnottocarrytoohighspreadcountsandratherboygroupnodesthatcreate
spreadcounts.

http://vvvv.org/documentation/boygroupingbasics

2/5

20/12/2015

BoygroupingBasics|vvvv
Letshavealookat3differentboygroupingscenariosyou'llbeconfrontedwithwhilepatching:

Thesendingnode(gray)existsonlyontheserverwhilethereceivingnode(blue)isontheclient.Nowas
theychangeallvaluesaretransmittedviaUDPeveryframe.AsUDPcannotguaranteeafixeddatarateor
latency,youwillnoticeasmalldelayorroughnessintheanimationofyourobjects.Withanimation
parametersbeingtransmittedfromservertoclientsitisthereforegoodpracticetohaveaboygrouped
Damper(Animation)

asthefirstnodeonaclient.

Bothnodesexistontheclient.Herenodataistransmitted.Thenodesontheclienthaveconnectedlocally
(ontheclients)anddataistransferredinternally.Soyouwillgetsmoothanimationsasusual.

Thesendingnode(blue)isboygroupedwhilethereceivingnode(gray)isnot.Herenodataistransmitted.
Ontheserveryouwillalwaysseethevalueswhichwerelocallycalculated.Itisnotpossibletoretrieve
valuesfromtheclients.
Findingthebestnodestoboygrouptakesabitofpracticebutingeneralyoucan'tdomuchwrong.Ifyour
resultsaresloworjerkytryboygroupingdifferentnodesorspendyouranimationsablue
Damper(Animation)

node.

Bridges
Bridgesareconnectionsbetweengrayandbluenodes,ie.linksthattransmitdataviathenetwork.
TheBoyGroup(VVVVServer)

nodehastwooutputsthatgiveyouinformationsaboutBridges

BridgeCount
ActiveBridges
Activebridgesarethosetransmittingdatainexactlythisframe.

thedisplayofthebridgesismainlyfordebugpurposes.Ithelpsyouroughlyunderstandhowmanyconnections
therearetransmittingdata.Typicallyyouwanttokeepthematalowcount.

Warnings
IftheBoyGroup(VVVVServer)

'sWarningpinoutputssomethinglike

msgtoobigforUDP;wassentviaTCP:/4/14/139/ScaleXYZ
means:
/4/14/139
isthepathtothepin
ScaleXYZ
giveninnodeidsasseenfromtheROOT.
LikethisyoucanidentifythelocationinyourpatchwherethistoobigmessagehadtobesentviaTCPand
checkifitisreallynecessarylikethisorifyoucanimproveyourpatch.
Thereasonforthiswarningisthatvvvvbydefaultwon'trisktofragmentUDPpackagesandthuskeepsthem
underthe

MTUsizewhichseemstodefaultto1472bytesbutmayvaryondifferentnetwork/hardware

http://vvvv.org/documentation/boygroupingbasics

3/5

20/12/2015

BoygroupingBasics|vvvv
setups.Tocheckforthemtusizeonyoursetupopenaconsoleonyourserverandpingoneoftheclientslike
so:
ping192.168.2.104l1472f
Thisshouldnotreturnanyerror.Nowincreasethat1472numberandseewhenyougetanerrormentioning
fragmentation.Ifyoufindanumberdifferentto1472thatworksforyouyoucansavelysetthatviathe
MaximumUDPPacketSize

onBoygroup(VVVVServer)

andvvvvwillonlyswitchtotcpformessages

largerthanthat.
NowyoucanevenincreasetheMaximumUDPPacketSize

ifthepingtestfailsforhighernumbers.Justbe

awarethatthisincreasesthechancesforpacketlosswhichmaydependingontheneedsofyourprojectnotbe
aproblematallandgainyoursomeperformance.

ClientID
Sofarallclientswouldreallyalwaysdoeverythingincompletesyncwhichisn'tofmuchuse.ConsiderJustin,
Lance,JC,JoeyandChrisperformingtheirdancemovementsallattheverysamepositiononstage.Whilethis
wouldcauseinterestingartefactsitjustwouldn'tworkinourlimited3dimensions.Thereforeboygrouping
introducesaClientIDwhichistheonlyfeaturethatletsyoudistinguishbetweentheclients(andindeedthe
server)fromapatchsview.
TheBoygroup(VVVVClient)

nodereturnsadifferentIDfrom0uptoClientsCount1oneachclient.The

orderdependsonthespreadofIPaddressesyouenteredontheBoygroup(VVVVServer)

node.IPinslice0

willbeClientID0,IPinslice1willbeClientID1andsoon.NotethatontheserverBoygroup(VVVVClient)
returnswhatevervalueyousetonitsServerIDinputandwhatevervalueyouchoosefortheServerIDhasno
effectontheclients.ChangingtheServerIDsimplyletsyousimulateanyoftheclientsontheserver.
Forasimpletestpatchsee
girlpower\takethat.v4p.
ThereyouseetheBoygroup(VVVVClient)

nodeinaction.Intheexampleitisusedtosetthecameratoa

differentoffsetoneachclient.

FullscreenonClients
Thestandardboygroupingscenarioisthatyoustillwanttobepatchingontheserverwhileyourclientsalready
areinfullscreen.Thereforeyou'llwanttheRenderersFullscreen

besetto1ontheclientsbut0onthe

server.Rememberthattheonlywaytodistinguishtheserverfromalltheclients(andtheclientsfromeach
other)istheClientID.Dependingonthisyoucanpatchsomethinglikethefollowingtohavearendereronthe
serverinwindowedmodewhileitisfullscreenonallclients.

SynchronizedVideoPlayback
seevideosynchronization

RemotingClients
Whenhavingtodealwithalargenumberofclientsitisoftenusefultostart/stopvvvv.exeorotherprocesses
onallofthemwithjustoneclickfromtheserver.Alsoyoumaywanttoreboot/shutdown/WakeOnLAN
individualclientsorestablishaVNCconnectiontooneofthemfordebugging.Allthisandsomemorecan
convenientlybedonewithourseparatetool:RemoterSA.
AlternativelysomeofthosefeaturescouldbeevenpatchedusingtheRemoteShellnodeRSh(Network)

AlsoseeRSHHowTo.

FAQ
WhydoesCTRLBnotwork?
Thisshortcutonlyworksinservermode.Startvvvvwiththe/serverflagtoenableboygrouping.

Itseemsthatbangsarenotarrivingonclients
randomly?!
Yep,thatisverylikelyso.Thesolutiontothisproblemissimple:Insteadofhavingabangbetweenablueand
agraynodepatchitsoyouhaveonlyachangingvalue(e.g.countingupavalue)beingtransmittedviathe
network.ThefirstbluenodeisthenaChange(Animation)

toconvertthevaluechangetoyourdesiredbang.

Foranexplanationreadon:serverandclientsarenotframesynced.Itismostlikelythatclientsrunfasterthan
theserver,whichusuallyhassomeoverhead.Eventhoughthebangwilldefinitelybesentfromtheserverit
mayjustarriveonclientsinbetweenframesandbediscarded.Abangisessentiallyachangeto1followedby
achangebackto0inthenextframe.Ifboththosemessagesarriveontheclientinthesameframeonlythe
lastmessageistakenresultinginalossofthebang.

WhichnetworkportsdoesBoygroupinguse?
http://vvvv.org/documentation/boygroupingbasics

4/5

20/12/2015

BoygroupingBasics|vvvv

WhichnetworkportsdoesBoygroupinguse?
PerdefaultvvvvestablishesaTCPconnectiononport3333toeveryclientfortransmittingallgraphchanges.
AllvaluechangesarebeingbroadcastonUDPport3333.Youcanchangethatdefaultportviathe
Boygroup(VVVVServer)

nodesNetworkPort

.Notethough,thatifyoudosoyoualsohavetostartyour

clientswithamodifiedstartupcommandlikethis:
/client192.168.0.100:4444

impressum|Pagecreatedby

joreg,lastmodificationby

http://vvvv.org/documentation/boygroupingbasics

joregon29.08.14[16:32UTC],read40619times

5/5

You might also like