Professional Documents
Culture Documents
BoygroupingBasics|vvvv
Screenshots
Propaganda
Users
Licensing
Blog
Forum
Documentation
Learning
Contributions
Using vvvv
Topics
Downloads
Node Reference
Search
Devvvveloping
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