You are on page 1of 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