Brush or treat: Procés de desenvolupament

La idea inicial era que la temàtica de Halloween fos una sorpresa, així que l’aplicació web semblava un joc innocent fins que es feia clic al botó d’iniciar/apagar.
Per aquest motiu es van tractar per separat l’estètica de Healthy Smile Labs i la de Brush or treat.

La primera havia de ser neta, asèptica, gairebé com un consultori mèdic. En canvi, en entrar al programa de raspallat, el vídeo havia de tornar-se fosc i inquietant.

A més, la idea principal era la d’una presència fosca al voltant de l’usuari que l’amenaça perquè es raspalli les dents. Quan l’usuari ho fa, la presència embogeix i encara l’amenaça més. Tot això ambientat dins de l’humor negre, i no massa explícit, ja que està pensat per a un públic més aviat jove.

Esbossos de les captures de pantalla
Esbossos fets per tenir una idea de les captures de pantalla

A nivell visual, l’estil s’inspira en el terror clàssic: colors foscos, contrastos freds i efectes de llum intermitent. Les il·lustracions i gràfics han estat creats per mi, amb un traç brut i expressiu per reforçar la sensació d’incomoditat, i inspirats en la bogeria de Jinx (de la sèrie Arcane —Netflix—).

La tipografia utilitzada prové de dafont.com, triada pel seu aspecte distorsionat que encaixa amb l’atmosfera. Els sons de l’ambientació s’han obtingut de Pixabay amb llicència lliure, i s’ha ajustat el volum perquè s’integrin sense saturar l’experiència.
També s’ha afegit un sistema de partícules per als “dents” que apareixen en el crazyMode, per reforçar el to surrealista.

Captura de pantalla amb el programa apagat
Captura de pantalla en modePhantom
Captura de pantalla en crazyMode

Les llibreries utilitzades són: p5.js per a la visualització, ml5.js per a la detecció facial —centrant la interacció en l’obertura de la boca i en pintar creus a la posició dels ulls—.
També s’ha utilitzat Electron per convertir-la en una aplicació d’escriptori, i el projecte s’ha pujat a un repositori de GitHub
https://github.com/elecinas/BrushOrTreat

Gràcies a Git, s’ha pogut treballar amb més tranquil·litat i mantenir un bon control de canvis.

El flux és simple i directe: en iniciar l’aplicació, es mostra la càmera i un entorn fosc; l’usuari pot activar el programa amb el botó “iniciar”.
Apareix una ambientació inquietant i fosca amb la presència d’un fantasma que xiuxiueja amenaces, però quan l’usuari obre la boca, l’atmosfera canvia dràsticament: sons de rialles, música més intensa, imatges de somriures inquietants i dents que es multipliquen per la pantalla mentre se li tatxen els ulls.
Aquest joc d’ambientacions es pot aturar amb el mateix botó amb què es va iniciar, tornant a l’estat normal.

Conclusió

En començar el desenvolupament de l’app vaig decidir prioritzar-ne el muntatge i l’acabat, deixant per més endavant l’elecció de la llibreria de reconeixement facial i la d’Electron.
Això va ser un error, ja que, d’una banda, vaig haver d’instal·lar Electron amb l’aplicació ja creada a GitHub i ho vaig fer afegint els arxius manualment, en lloc de crear una aplicació d’Electron des del principi —que hauria estat molt més senzill—.
Però el més complicat va ser intentar migrar de llibreria de reconeixement facial: ho vaig provar amb MediaPipe de Google durant no sé quantes hores, sense aconseguir-ho.
Així que, per manca de temps i una planificació poc encertada, em vaig quedar amb ml5.js.


Primer Flashazo!

Hola a tothom! Aquí us deixo el pdf del repte. Ha estat un plaer reprendre la fotografia després de tants anys. Ha canviat tant, des que era tot analógic i es feia més feina al laboratori i ara és tot al carrer gràcies al canvi digital. Tot i que m’ha encantat, si que trobo a faltar una mica els líquids, el control dels temps i filtres manuals 🙂

Time Rings

Per la creació del meu rellotge vaig plantejar-me la idea dels cicles:
El temps és cíclic, els cercles representen el temps, els planetes són esferes que són cercles amb volum i les òrbites dels planetes són cícliques.
Així doncs vaig partir d’una idea de representar els cicles temporals de manera circular, una per a cada part del temps:

Amb la idea plantejada vaig mesurar, fent servir illustrator, la millor manera de distribuir els espais (seccions) i els segments; cada cercle te 6 subcercles que són proporcionals a 24 i 60

L’elecció de la paleta era clara, el dia amb tons de cel de dia i la nit fosca. I el color dels cercles llampants per contrastar.
Així doncs, el programa detecta quin mes estem i, el rellotge és diürn o nocturn. Diürn, pinta un sol i cel blau (encara no detecta si està núvol ^^U) i nocturn pinta la lluna i cel negre.
En conseqüència s’adapta tota la paleta de colors.
La tipografia, obtinguda de Google Fonts, havia de ser digital, ja que evoca els rellotges digitals vintage.j
El podreu trobar aquí:
https://editor.p5js.org/elecinas/full/R8xMMmG7E

NOTA: S’ha fet servir l’eina d’IA ChatGPT per la creació de la funció que detecta si és de dia o de nit segons on som i el mes que som, a més de revisar el codi quan no funcionava per detectar on eren els errors.

Pràctica: Reg automàtic

Després d’una nova fase de testeig, reflexions i adaptacions, s’han implementat al reg automàtic una serie de millores, tenint en compte algunes limitacions del prototip inicial.

En particular, la falta de control manual sobre el moment i la durada del reg podia ser un inconvenient en situacions canviants (per exemple, pluges inesperades, manteniment, canvis en les necessitats de reg, etc.).

Amb aquestes millores obtenim la posibilitat de programar l’inici i la duració del reg de manera manual mitjançant tres polsadors i una pantalla LCD.

Vincle a Youtube:

PAC3: Sistema de reg automàtic

Moltes ciutats recomanen o obliguen a regar les plantes en horari nocturn per estalviar aigua i reduir l’evaporació.

Aquest sistema dona una solució práctica, económica i adaptable per automatitzar el reg de les plantes després de les 22:00 h, sense dependre de l’usuari.

Funcionament del sistema

  • El cor del sistema és una placa Arduino programada per activar el reg només a la nit.

  • Sensor d’humitat: comprova si la terra realment necessita aigua.

  • Sensor de nivell d’aigua: assegura que el diposit no estigui buit.

  • Quan es compleixen totes les condicions (hora, humitat, nivell d’aigua), la bomba de 5V rega les plantes durant el temos programat.

  • Aquest sistema està preparat per afegir, en el futur, notificacions al mobil (amb el modul ESP12E) i altres millores de control remot.