Sendero Server is the main component of Sendero, developed in C++ with OpenFrameworks. It is in charge of blending and distributing the lighting patterns (generated by Sendero Clients) that feed the artwork.
OpenFrameworks is a cross-platform tool, but (for now) Sendero Server has only been compiled in Linux.
Ubuntu
-
Download, unpack and install dependecies of OpenFrameworks 0.9.3 through the
<OF_dir>/scripts/linux/ubuntu/install_dependencies.sh
script of the framework.If the
gcc >= 5.0.0
(default in latest Ubuntu versions) is installed, make sure you access to recompile Poco libraries when theinstall_dependencies.sh
asks to. -
Install other needed libraries:
sudo apt-get install opencl-headers liblz4-dev liblapack-dev liblas-dev
-
Install the following OF addons:
-
Clone this repository in
<OF_dir>/apps/myApps/
OF subfolder. -
Compile the project running
make Debug
. -
To run Sendero Server execute
make RunDebug
.
Sendero Server's configurations are made in bin/data/serverConf.xml
file. The following commented xml file is a fragment of a working Sendero configuration. The entire file can be found in bin/data/serverConf.xml
.
<?xml version="1.0" ?>
<!-- The artwork has 90 pixels -->
<Configuration installationName="Pentakis" pixelQuantity="90">
<!-- Entities that will receive the stream of ArtNet packets -->
<Devices>
<Device UDPPort="7777" enabled="1" id="1" ipAddress="localhost" name="Pentakis" type="mBed"/>
</Devices>
<!-- Meshes that represent pixels in 3D representation of the artwork -->
<Meshes>
<Mesh name="cylinderShort" path="meshes/cylinderShort100.obj"/>
<Mesh name="cylinderLong" path="meshes/cylinderLong100.obj"/>
</Meshes>
<!-- Different led types, so Sendero Server can calibrate each pixel separatedly -->
<LedTypes>
<LedType id="0">
<ColorPair b0="0" b1="0" g0="0" g1="0" r0="255" r1="255"/>
<ColorPair b0="0" b1="0" g0="255" g1="255" r0="0" r1="0"/>
<ColorPair b0="255" b1="255" g0="0" g1="0" r0="0" r1="0"/>
</LedType>
<LedType id="1">
<ColorPair b0="0" b1="0" g0="0" g1="0" r0="255" r1="255"/>
<ColorPair b0="0" b1="0" g0="255" g1="200" r0="0" r1="0"/>
<ColorPair b0="255" b1="255" g0="0" g1="0" r0="0" r1="0"/>
</LedType>
</LedTypes>
<!-- For each pixel: initial RGB color, device (defined above) receiving it, led type (defined above) that lightens it -->
<FrameConf>
<Pixel a="255" b="255" device="1" g="255" id="0" ledType="0" r="255">
<!-- Mesh name (defined above) -->
<Render mesh="cylinderShort">
<!-- Front, Up, Position coordinates of the pixel in the 3D model -->
<Front x="-0.0998540000000001" y="0.229397" z="-0.0259085"/>
<Up x="0.546030364592086" y="0.488412566772085" z="2.22000739347465"/>
<Position x="55.8648" y="22.9397" z="-43.28855"/>
</Render>
</Pixel>
<Pixel a="255" b="255" device="1" g="255" id="1" ledType="1" r="255">
<Render mesh="cylinderLong">
<Front x="0.141775" y="-0.087622" z="0.229397"/>
<Up x="0.423934187608445" y="0.199571320207026" z="-0.185775887343807"/>
<Position x="60.0569" y="37.1172" z="-22.9397"/>
</Render>
</Pixel>
.
.
.
<Pixel a="255" b="255" device="1" g="255" id="89" ledType="0" r="255">
<Render mesh="cylinderShort">
<Front x="0" y="-0.1676835" z="-0.187476"/>
<Up x="0.53360247055402" y="0.708328084653321" z="-0.633547400109695"/>
<Position x="0" y="-57.46605" z="47.1026"/></Render>
</Pixel>
</FrameConf>
<!-- Sendero Clients used -->
<ClientsProxys>
<Client TCPPort="5002" UDPPort="5003" blendFactor="0.7" enabled="1" id="1" name="Sound" protocolType="0"/>
<Client TCPPort="5004" UDPPort="5005" blendFactor="0.5" enabled="1" id="2" name="Interaction" protocolType="0"/>
</ClientsProxys>
<!-- Sendero Streaming Server address and LZ4 compression availability setting -->
<StreamServerConfig compression="1" enabled="1" ipAddress="app.sendero.uy" port="8080"/>
</Configuration>
For more information about Sendero Project go to the base repository.
Logo designed by [email protected] & [email protected]