serie
Composition NB
2008




"L’imprévu comme moteur de création"
Composition NB
2008
Santiago Torres ouvre la voie à une reconsidération de la relation entre l'œuvre, l'artiste et le public. Dans sa pratique, chaque interaction n'est pas seulement un acte passif, mais un acte créateur qui engage pleinement le spectateur. Cet engagement redéfinit le rôle traditionnel de l'observateur, le transformant en partenaire actif de l'œuvre. Ainsi, l'art devient une expérience vivante, continuellement façonnée par les actions de ceux qui s'y plongent.
La dimension interactive ajoute une couche de réflexion sur l'immuabilité et l’éphémère. Dans la vision de Torres, l’œuvre se libère des chaînes de la tradition statique et propose un nouveau paradigme où la beauté réside dans le changement et l’instantanéité. Ce processus dynamique encourage les spectateurs à envisager leur propre place dans l'art et à reconnaître la contribution de leur présence à l'expérience artistique.
Dans cette quête de réinvention, Torres embrasse pleinement l'idée que l'art n'est pas uniquement une chose à voir, mais une expérience à vivre. Les échos de l'œuvre de Malevitch se manifestent, mais à travers le filtre d'une modernité qui valorise l'interaction humaine et la fluidité, offrant ainsi une nouvelle lecture des fondations de l'art contemporain.
Par cette approche, Santiago Torres n'innove pas seulement : il catalyse un échange entre le passé et le futur, redéfinissant ainsi les frontières de l'art, tout en posant des questions essentielles sur la nature même de l'œuvre d'art. Ce dialogue enrichissant entre histoire et interactivité propose une vision originale de l'art en tant que processus, toujours en mutation sous nos yeux.
"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 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"
}