serie
Composition colors
2008
"L’imprévu comme moteur de création"
Composition colors
2008
Une Exploration Artistique Interactive : L'Expérience Visuelle de Santiago Torres
Ce tableau, une création numérique signée Santiago Torres, incarne l'essence même de l'art interactif et génératif. Réalisée à l'aide de code, cette œuvre dynamique se déploie sur un écran tactile, invitant le spectateur à devenir un acteur essentiel de sa transformation. Chaque interaction avec la surface tactile modifie l'agencement des formes et des couleurs, permettant de créer des compositions uniques et éphémères.
Une Fusion de Couleur et de Géométrie
L'œuvre présente un jeu subtil de dégradés et de géométries superposées, où des rectangles lumineux semblent flotter dans un espace infini. Les teintes, allant de verts éclatants à des dégradés roses et bleus délicats, interagissent pour créer une harmonie visuelle saisissante. Chaque élément semble avoir été soigneusement positionné pour évoquer une profondeur architecturale, tout en permettant une liberté totale dans l'interprétation de la composition.
Une Dimension Interactive et Collective
L'originalité de cette œuvre réside dans son caractère interactif. Lorsqu'un spectateur touche l'écran, des algorithmes programmés par Santiago Torres réagissent instantanément, générant de nouvelles configurations. Ce processus fait de chaque spectateur un co-créateur, transformant le tableau en un espace collectif d'expression artistique. Chaque interaction laisse une empreinte unique, témoignant de l'unicité de chaque rencontre entre l'œuvre et son public.
Une Référence à l'Héritage Artistique
Cette œuvre s'inscrit dans la continuité des recherches de l'art cinétique et luminocinétique, rappelant l'influence de maîtres comme László Moholy-Nagy ou Victor Vasarely, tout en explorant de nouvelles dimensions offertes par la technologie contemporaine. En mêlant tradition et innovation, Santiago Torres invite à repenser la relation entre l'artiste, l'œuvre et le spectateur.
Une Expérience Esthétique Immersive
Avec ce tableau interactif, Santiago Torres propose une expérience esthétique immersive où les couleurs, les formes et les interactions humaines se rencontrent pour créer un univers en constante évolution. Cette œuvre dépasse le simple plaisir visuel pour devenir un dialogue vivant entre le spectateur et l'art numérique, une célébration de la créativité partagée et de l'innovation artistique.
Ce qui m’a toujours fasciné dans l’art, c’est sa capacité à capturer non seulement l’instant présent, mais aussi ce qui échappe à notre perception consciente. L’art, à mon sens, ne se limite pas à un objet fini destiné à être contemplé. Il est un espace de rencontre, une ouverture vers l’inattendu, où l’imprévu joue un rôle essentiel. À travers ma série Composition Colors 2008, j’ai voulu dépasser les limites de la contemplation passive pour inviter le spectateur à un dialogue actif. Dès qu’il interagit avec l’œuvre, celle-ci devient vivante. Ce moment d’échange, à la fois éphémère et significatif, constitue l’essence de cette série.
Dans cette démarche, je m’inscris dans une réflexion qui dialogue avec les théories psychanalytiques de Jacques Lacan. Pour Lacan, l’inconscient n’est pas une structure figée, mais un processus en perpétuel mouvement, guidé par le langage, les désirs et les imprévus. De la même manière, mes œuvres ne sont jamais définitives. Elles évoluent en temps réel, se modifiant au gré des gestes et des choix du spectateur. Ce sont des surfaces où se projettent à la fois le conscient et l’inconscient, où chaque interaction révèle quelque chose d’unique et d’imprévisible.
L’imprévu comme moteur de création
L’imprévu est au cœur de mon travail. Contrairement à l’idée d’une œuvre d’art statique, figée dans le temps et l’espace, je conçois mes créations comme des espaces ouverts, où l’intervention humaine devient un élément constitutif. Inspiré par la notion lacanienne de "réel" – cet élément insaisissable qui échappe toujours à la symbolisation complète – je cherche à intégrer cette dimension dans mes œuvres. Chaque interaction produit une rupture, un moment où l’œuvre échappe à son statut d’objet et devient un événement.
Dans Composition Colors, l’œuvre ne trouve sa forme que dans l’instant d’intervention. Ce processus dialogue avec l’idée lacanienne que le "sujet" se constitue dans l’acte, dans l’interaction avec l’Autre. Ici, le spectateur devient ce "sujet", transformant l’œuvre en une extension de son propre inconscient. L’art devient alors un espace où l’on ne contemple pas seulement l’imprévu, mais où l’on le crée activement.
video realice dans l'atelier Julio Leparc 2009
video realice dans l'exposition solo show de santiago torres Denise Rene 2014
**** Platform Direct3D 11:
Compiled code for kernel CSMain
keywords: <none>
binary blob size 1824:
// Travail original (santisar) Copyright (C) 2007 santiago torres
// Description : code soleil noire
// Auteur : santiago torres.
// Dernière modif : 20080923
// Licence : Copyright (C) 2024 santiago torres. Tous droits réservés.
// -------------------- ----- ------ -------- -------- ------- ------
Shader "Custom/DegradeNoirBlanc-Layers"
{
Properties
{
// Layer 1
_Layer1Active ("Layer 1 Active", Range(0,1)) = 0
_Layer1Start ("Layer 1 Start", Range(0,1)) = 0.1
_Layer1End ("Layer 1 End", Range(0,1)) = 0.2
_Layer1Value ("Layer 1 Value", Range(0,1)) = 0.5
// Layer 2
_Layer2Active ("Layer 2 Active", Range(0,1)) = 0
_Layer2Start ("Layer 2 Start", Range(0,1)) = 0.2
_Layer2End ("Layer 2 End", Range(0,1)) = 0.3
_Layer2Value ("Layer 2 Value", Range(0,1)) = 0.5
// Layer 3
_Layer3Active ("Layer 3 Active", Range(0,1)) = 0
_Layer3Start ("Layer 3 Start", Range(0,1)) = 0.3
_Layer3End ("Layer 3 End", Range(0,1)) = 0.4
_Layer3Value ("Layer 3 Value", Range(0,1)) = 0.5
// Layer 4
_Layer4Active ("Layer 4 Active", Range(0,1)) = 0
_Layer4Start ("Layer 4 Start", Range(0,1)) = 0.4
_Layer4End ("Layer 4 End", Range(0,1)) = 0.5
_Layer4Value ("Layer 4 Value", Range(0,1)) = 0.5
// Layer 5
_Layer5Active ("Layer 5 Active", Range(0,1)) = 0
_Layer5Start ("Layer 5 Start", Range(0,1)) = 0.5
_Layer5End ("Layer 5 End", Range(0,1)) = 0.6
_Layer5Value ("Layer 5 Value", Range(0,1)) = 0.5
// Layer 6
_Layer6Active ("Layer 6 Active", Range(0,1)) = 0
_Layer6Start ("Layer 6 Start", Range(0,1)) = 0.6
_Layer6End ("Layer 6 End", Range(0,1)) = 0.7
_Layer6Value ("Layer 6 Value", Range(0,1)) = 0.5
// Layer 7
_Layer7Active ("Layer 7 Active", Range(0,1)) = 0
_Layer7Start ("Layer 7 Start", Range(0,1)) = 0.7
_Layer7End ("Layer 7 End", Range(0,1)) = 0.8
_Layer7Value ("Layer 7 Value", Range(0,1)) = 0.5
// Layer 8
_Layer8Active ("Layer 8 Active", Range(0,1)) = 0
_Layer8Start ("Layer 8 Start", Range(0,1)) = 0.8
_Layer8End ("Layer 8 End", Range(0,1)) = 0.9
_Layer8Value ("Layer 8 Value", Range(0,1)) = 0.5
// Layer 9
_Layer9Active ("Layer 9 Active", Range(0,1)) = 0
_Layer9Start ("Layer 9 Start", Range(0,1)) = 0.9
_Layer9End ("Layer 9 End", Range(0,1)) = 1.0
_Layer9Value ("Layer 9 Value", Range(0,1)) = 0.5
// Layer 10
_Layer10Active ("Layer 10 Active", Range(0,1)) = 0
_Layer10Start ("Layer 10 Start", Range(0,1)) = 0.0
_Layer10End ("Layer 10 End", Range(0,1)) = 0.1
_Layer10Value ("Layer 10 Value", Range(0,1)) = 0.5
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
Pass
{
CGPROGRAM
// Déclaration des fonctions vertex et fragment
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
// Structure d'entrée du vertex shader
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
// Structure de transmission entre vertex et fragment shader
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
// Déclaration des variables uniformes liées aux propriétés
float _Layer1Active, _Layer1Start, _Layer1End, _Layer1Value;
float _Layer2Active, _Layer2Start, _Layer2End, _Layer2Value;
float _Layer3Active, _Layer3Start, _Layer3End, _Layer3Value;
float _Layer4Active, _Layer4Start, _Layer4End, _Layer4Value;
float _Layer5Active, _Layer5Start, _Layer5End, _Layer5Value;
float _Layer6Active, _Layer6Start, _Layer6End, _Layer6Value;
float _Layer7Active, _Layer7Start, _Layer7End, _Layer7Value;
float _Layer8Active, _Layer8Start, _Layer8End, _Layer8Value;
float _Layer9Active, _Layer9Start, _Layer9End, _Layer9Value;
float _Layer10Active, _Layer10Start, _Layer10End, _Layer10Value;
// Vertex shader : transformation de la position et passage des coordonnées UV
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
return o;
}
// Fragment shader : calcul du dégradé en combinant le dégradé de base avec les layers interactives
fixed4 frag (v2f i) : SV_Target
{
// Dégradé de base (noir à blanc) basé sur uv.x
float value = saturate(i.uv.x);
// Application des layers (si activées) avec interpolation lissée (smoothstep)
value = lerp(value, _Layer1Value, smoothstep(_Layer1Start, _Layer1End, i.uv.x) * _Layer1Active);
value = lerp(value, _Layer2Value, smoothstep(_Layer2Start, _Layer2End, i.uv.x) * _Layer2Active);
value = lerp(value, _Layer3Value, smoothstep(_Layer3Start, _Layer3End, i.uv.x) * _Layer3Active);
value = lerp(value, _Layer4Value, smoothstep(_Layer4Start, _Layer4End, i.uv.x) * _Layer4Active);
value = lerp(value, _Layer5Value, smoothstep(_Layer5Start, _Layer5End, i.uv.x) * _Layer5Active);
value = lerp(value, _Layer6Value, smoothstep(_Layer6Start, _Layer6End, i.uv.x) * _Layer6Active);
value = lerp(value, _Layer7Value, smoothstep(_Layer7Start, _Layer7End, i.uv.x) * _Layer7Active);
value = lerp(value, _Layer8Value, smoothstep(_Layer8Start, _Layer8End, i.uv.x) * _Layer8Active);
value = lerp(value, _Layer9Value, smoothstep(_Layer9Start, _Layer9End, i.uv.x) * _Layer9Active);
value = lerp(value, _Layer10Value, smoothstep(_Layer10Start, _Layer10End, i.uv.x) * _Layer10Active);
// Retourne la couleur en nuance de gris (RGB identique) avec une opacité à 1
return fixed4(value, value, value, 1.0);
}
ENDCG
}
}
// Fallback en cas d'incompatibilité matérielle
Fallback "Diffuse"
}