(patch réalisé avec cable.gl editable ici)
Cables.gl est une plateforme web de programmation visuelle en temps réel, conçue pour créer des animations audiovisuelle interactives, connectés à des services en ligne ou des capteurs. Elle permet aux artistes et développeurs de créer des expériences en connectant des "nœuds" ("nodes") dans une interface graphique, sans nécessairement écrire de code.
La plateforme est créer par le Studio UNDEV, elle utilise des technologies modernes comme WebGL, javascript et Html / CSS pour un rendu graphique moderne dans le navigateur. Le projet est gratuit, OpenSource et permet de publier ses projets en ligne.
Note: Une souris est fortement conseillée pour le confort d'utilisation plutôt qu'un trackpad!
Nous utiliserons ici la version en ligne de cables.gl pour faciliter le partage et la collaboration pendant le workshop.
1 - Créez un compte de préférence avec Chrome sur https://cables.gl/
2 - Connectez-vous et rejoignez la team Beaux-art Paris (clic "demander l'accès")
Note: Il est aussi possible d'installer une version autonome (standalone) pour Windows / MacOS / Linux par la suite si nécessaire
- Patch : Un programme réalisé avec cables.gl. "patcher" s'utilise comme synonyme de "programmer". Le résultat est ici audiovisuel.
- Canvas : L'écran d'affichage, le résultat graphique, dessin, vidéo etc...
- Node Editor : La fenêtre d'arborescence pour connecter les Opérateurs ou "Op"
- Op / Operator : Une boîte qui effectue une FONCTION (codée en javascript, GLSL..) en utilisant des PARAMETRES. VOIR TOUS LES OPERATEURS
- Input Port : Ports d'entrée, peuvent STOCKER des informations ou en recevoir d'autres opérateur
- Output Port : Ports de sortie, retournent les données traitées par l'opérateur, peut les renvoyer à d'autres opérateurs
- Parameters : Les VALEURS stockées dans un opérateur (ex: color RGB = "255,0,0" Translate XYZ = "0,0,20"). Il existe différents TYPES
- Number : Type de donnée contenant un nombre (Integer = entier / float = décimal)
- Boolean : Type de donnée contenant deux 2 états: TRUE or FALSE ( vrai / faux )
- String : Type de donnée contenant un ou plusieurs caractère : "a" ... "salut" etc.
- Array : Type de donnée contenant une liste de valeur : "1 , 2 , 3"... "one, two, three" etc.
- Object : Type de donnée plus complexes permettant de stocker des données javascript ( Json / Texture / Audio ...)
Les projets ont plusieurs manières d'être partagés selon les droits dans "Patch Settings"
Public : tout le monde voit le patch et il est affiché sur la page d'accueil / communauté discord
Unlisted with editor : seul ceux qui ont le lien le voit avec possibilité d'édition
Unlisted Patch only : seul ceux qui ont le lien le voit sans édition
Private : seuls certains utilisateurs autorisés peuvent le voir
Partager avec un lien : modifier l'URL selon les besoins:
View page : Ex: https://cables.gl/view/NB2hht
Patch page : Ex https://cables.gl/p/NB2hht
Editeur : Ex: https://cables.gl/edit/NB2hht
Partager via QrCode : menu du patch : View Patch page ou Remote pour collaborer sur le patch à plusieurs.
Insérer le patch dans une iframe sur un site (ex: wordpress etc...)
Changer le mode Visibility: "private" dans Patch settings pour Unlisted.
Export -> Embed puis copier / coller le code html sur votre site.
Héberger le patch sur son propre serveur (ex: github, etc...)
Export -> Html puis créer un repository Github Pages pour y déposer le contenu du zip
Tutoriels Cables.gl
Images 2D (.jpg, .png)
- Générer des images png transparentes par IA avec pnggen
- Textures & Images transparentes en png sur pngwing
- Photoshop / illustrator gratuit dans le navigateur avec Photopea / Vectorpea
Modèles 3D (.glb)
- Visualiser vos modèle 3d dans le navigateur web avec gltf-viewer
- Télécharger un modèle 3d en .glb sur Sketchfab (choisir "downloadable", sélectionner Texture size: 1k)
- Générer un modèle 3d avec Tripo3d.ai "Light version" (puis exporter .glb retopologize : "low" )
- Réduire le poids des modèles 3d pour les téléphones avec https://glb.babylonpress.org/
- Scanner un object en 3d depuis son téléphone avec Polycam
- Créer son avatar animé sur https://avaturn.me/
- Convertir une texture en .glb : éviter le bug d'animation image 2d dans Zapworks
Vidéos (.mp4)
- Télécharger une vidéo youtube en .mp4 avec notube
- Créer des présentateurs video sur fond vert à partir de texte avec vidnoz
- Créer des avatars de plein pied et faire un montages riche avec deepbrain.io
- Télécharger des fichiers audio / bruitages en .mp3 sur freesound.org ou Soundbible
Divers
- Tester la stabilité d'une image Target avec Pictarize
- Générer un QrCode lié à un lien internet / médias / sms / contacts etc avec QR Code Generator
- Créer des formulaires intelligents basés sur demande avec formless.ai
- Convertir des fichiers avec freeconvert
- Paramétrer Google analytic avec Zapworks Designer après avoir créer un tracking ID
L’Arduino est un microcontrôleur (non pas un ordinateur) qui permet de contrôler des moteurs, déclencher de la lumière etc... Il s'agit d'une carte électronique qui a révolutionné et simplifié la création interactive en 2005. Projet open-source, il est devenu aujourd’hui l’un des outils les plus utilisés par les makers et les artistes.
TinkerKit est un Kit compatible Arduino permettant de créer des projets interactifs de manière simplifiée. Il se compose d'une carte "Shield" qui se clipse sur l'arduino et permet de connecter facilement 6 capteurs en entrées et 6 effecteurs en sortie, ainsi qu'un système modulaire constitué de différents blocs capteurs qu'il suffit de brancher à l'aide de câbles à "clipser".
-> Dans Cables.gl les opérateurs [ArduinoInput] et [ArduinoOutput] permettent de discuter facilement avec les cartes Arduino ainsi que le shield tinkerkit.
Cartes électroniques:
- Arduino Léonardo + câble usb
- Carte bouclier tinkerkit (carte "shield" sur l'arduino pour connecter vos capteurs / effecteurs)
Capteurs entrée digitale ("tout ou rien"):
- Bouton poussoir
- Capteur à bille (orientation)
- Capteur capacitif (touché)
Capteurs entrée analogique ("graduels"):
- Slider (réglette linéaire)
- Potentiomètre
- LDR (lumière)
- Température
- Proximètre infrarouge (distance)
Effecteur (sortie digitale ou pwm):
- Leds divers (variété de couleur)
- Led RGB
- Led de puissance sur aimant (à demander)
- Bande flexible de led RGB (à demander)
- Ventillateur 12v (moteur continu)
- Servomoteur (rotation précise entre 0-> 180 deg)
- Mini servomoteur 9g (rotation continue, avant / arrière))
- Solénoïde 12v serrure (électro-aimant)
- Petit solénoïdes 5v
- Module relais (contrôler un circuit extérieur, jusque 36v)
- Module Mosfet (contrôler un circuit extérieur, en le graduant en pwm)
- Alimentation 12v
bouton - DIGITAL "tout ou rien"
Capacitif (touché) - DIGITAL "tout ou rien"
LDR (lumière) - ANALOG
Magnétique (présence aimant) - DIGITAL
Réglètte (déplacement) - ANALOG
Proximètre infrarouge (distance) - ANALOG
Potentiomètre (déplacement) - ANALOG
Température - ANALOG
Joystick - ANALOG
Led COB puissante 5v
Alimentation 12V (vérifier ampèrage dessus: environ 1A...)
Mosfet : interrupteur "gradué" (max 10ampères / 250V )
Relais : interrupteur "commandé" (max 5ampères / 24V )
Led 12V RGB
Brancher bande de led avec un mosfet
Moteur continu 1 ( 5 - 12V )
Brancher un relais avec un moteur continu
Moteur continu 2 ( 5v )
Solénoid 12V (grand) / 5V (petit)