2. Crear amb codi

2.2. Eines de programació creativa

2.2.6. Cinder

Cinder, llançada el 2010, és un llibreria de programació en C++ de codi obert creada per Andrew Bell amb aportacions de Hai Nguyen.

Es poden crear gràfics en 3D, formes generades amb algorismes, processament d’imatges, treball amb text i tipus de lletra personalitzats i edició d’àudio i vídeo. A més, Cinder és una multiplataforma, de manera que el mateix codi funciona en MacOS, Windows, Linux, iOS i Windows UWP. Per les seves característiques, es compara sovint amb openFrameworks i també es considera una alternativa per a C++ d’altres entorns com ara Processing (basat en Java), Microsoft Silverlight o Adobe Flash. Cinder s’empra sovint en instal·lacions interactives i basades en les visualització de dades o la simulació de propietats físiques.

Els mateixos creadors afirmen que és millor començar amb exemples creats i anar aprenent a partir d’aquests, per la qual cosa és possible accedir a nombrosos programes de mostra (allotjats a GitHub) i també emprar les eines Tinderbox, pensades per a facilitar la creació de nous projectes i Cinderblocks, una col·lecció de llibreries i codi que es combinen amb Tinderbox per a integrar ràpidament certes funcions en un projecte.

Crear un projecte amb Cinder requereix estar familiaritzat amb el llenguatge C++ i l’ús d’OpenGL. Hi ha tres funcions principals que estructuren qualsevol projecte:

  • setup( ) inicialitza les variables quan arranca el programa.
  • update( ) modifica aquestes variables.
  • draw( ) visualitza el resultat a la pantalla.

A aquestes funcions, cal sumar-ne dues més:

  • prepareSettings permet definir diversos paràmetres del programa abans d’iniciar-lo, com ara la grandària de la finestra o els fotogrames per segon.
  • shutdown se situa just quan se surt de l’aplicació, per a alliberar memòria o apagar dispositius.

Cinder usa l’espai de noms (namespace) de C++ per a distingir les funcions, de manera que tots els elements emprats en aquesta llibreria estan dins de l’espai de noms cinder:: (abreujat ci::). L’ús d’aquesta convenció exemplifica com el treball amb Cinder es basa en un coneixement previ de C++, i és que, a diferència d’altres entorns, aquí cal escriure codi coneixent la sintaxi i els diferents recursos que disposa la llibreria. En el lloc web es facilita una llista de referències per categories que pot servir per a trobar una funció concreta, però (com sol ocórrer amb altres llenguatges de programació) és mitjançant exemples ja realitzats com es poden descobrir millor les possibilitats de Cinder.

En aquest sentit, el primer ús de Cinder passa per crear un projecte nou amb Tinderbox i explorar algun dels projectes de mostra. Amb Tinderbox escollim la localització i el nom del projecte, i també el tipus de projecte a realitzar i, finalment, triem un compilador (XCode o Visual C++2010). El programa crea el projecte i les referències a la llibreria de Cinder, a més d’un codi de mostra i un exemple amb què es pot començar a treballar. A més, la guia Hello Cinder ofereix un recorregut informal per les fases de creació d’un projecte, des de la creació de la finestra en què es mostraran els resultats a la inserció i manipulació d’imatges, extracció de dades, control per mitjà del teclat i ratolí, creació d’un entorn en 3D i treball amb partícules aplicant regles, entre d’altres.