Just one more example. To run this example you will need the following file(s): ./orchester.box, computer.box, gears.box. If the example requires more than one file, then you should put them into the same directory. You can then launch Box/Boxer with box -l g ./orchester.box or boxer ./orchester.box.
//!BOXER:VERSION:0:1:1 include "g" GUI = Void Window@GUI[] //!BOXER:REFPOINTS:BEGIN gui1 = Point[.x=-117.457310125, .y=-45.553587782] gui2 = Point[.x=71.8443949495, .y=93.0393794521] mp = Point[.x=-26.6102232653, .y=0.240818907563] sp3 = Point[.x=41.9797089362, .y=53.877330137] sp1 = Point[.x=-88.6089585366, .y=51.0800409002] sp2 = Point[.x=-25.9824979866, .y=73.9669688073] gui7 = Point[.x=-26.7447855034, .y=38.3650972477] gui8 = Point[.x=-26.4906896644, .y=16.7496752294] gui9 = Point[.x=-85.6950201342, .y=15.2238807339] gui10 = Point[.x=-51.900273557, .y=-1.5598587156] gui11 = Point[.x=-3.36796832215, .y=0.983132110092] gui12 = Point[.x=29.6644907383, .y=17.5125724771] gui13 = Point[.x=-100.178482953, .y=14.7152825688] gui14 = Point[.x=-51.6461777181, .y=-9.95172844037] gui15 = Point[.x=-17.597335302, .y=38.6193963303] gui16 = Point[.x=-17.597335302, .y=17.0039743119] gui17 = Point[.x=45.9266244295, .y=17.0039743119] gui18 = Point[.x=-3.36796832215, .y=-9.44313027523] gui19 = Point[.x=-51.6461777181, .y=6.57771192661] gui20 = Point[.x=-71.2115573154, .y=15.7324788991] gui21 = Point[.x=-35.6381398658, .y=17.0039743119] gui22 = Point[.x=-35.6381398658, .y=38.6193963303] gui23 = Point[.x=-3.87616, .y=10.1378990826] gui24 = Point[.x=18.2301779866, .y=21.8356568807] gui25 = Point[.x=-78.3262408054, .y=1.7460293578] gui26 = Point[.x=12.3859736913, .y=8.61210458716] gui27 = Point[.x=-35.6381398658, .y=26.413040367] //!BOXER:REFPOINTS:END include "arrows" include "computer" master = Window[][Computer[" Coordination\n& computing node" Font["sans", 5, color.red] .master=1]] slave1 = Window[][Computer["Computing node n. 1"]] slave2 = Window[][Computer["Computing node n. 2"]] slave3 = Window[][Computer["Computing node n. 3"]] w = Window[][ BBox[gui1, gui2] Put[master, mp] Put[slave1, sp1] Put[slave2, sp2] Put[slave3, sp3] c_data = Color[(1.000, 1.000, 0.380)] c_management = Color[(1.000, 0.290, 0.190)] c_instructions = Color[(0.3, 0.8, 0.3)] Arrow2D[gui7, gui8, 2, 2.5, 4.5, c_data, .Both[]] Arrow2D[gui9, gui10, 2, 2.5, 4.5, c_data, .Both[]] Arrow2D[gui11, gui12, 2, 2.5, 4.5, c_data, .Both[]] Arrow2D[gui14, gui13, 2, 2.5, 4.5, c_management] Arrow2D[gui16, gui15, 2, 2.5, 4.5, c_management] Arrow2D[gui18, gui17, 2, 2.5, 4.5, c_management] Arrow2D[gui19, gui20, 2, 2.5, 4.5, c_instructions] Arrow2D[gui21, gui22, 2, 2.5, 4.5, c_instructions] Arrow2D[gui23, gui24, 2, 2.5, 4.5, c_instructions] Circle[gui26, 5, Gradient[Circles[gui26, 0; 10] Color[color.white, .a=1] Color[color.white, .a=0.0]]] Circle[gui25, 5, Gradient[Circles[gui25, 0; 10] Color[color.white, .a=1] Color[color.white, .a=0.0]]] Circle[gui27, 5, Gradient[Circles[gui27, 0; 10] Color[color.white, .a=1] Color[color.white, .a=0.0]]] Texts[Font["sans", 4.5], color.black gui26, From[(0.5, 0.5)], "Data"; gui25, From[(0.8, 0.5)], "Management\ninstructions"; gui27, "Computing\ninstructions"] ] GUI[w] w.Save["orchester.png", Window["rgb24", .Res[Dpi[80]]]]