La construcción de sentidos en el arte computacional: composición de lenguajes creativos

por Karen Palacio

Taller experimental teórico-práctico

Modalidad on line – 4 encuentros sincrónicos via zoom

Fechas: 10, 17, 24 de noviembre y 1 de diciembre de 2022

Horario: 18 a 20 hs (Argentina)

¿Cómo podemos escribir programas que interpretan otros programas? ¿Cómo podemos construir sentidos en la producción de una obra que interactúe íntimamente con el medio computacional? ¿Cuándo un programa “se convierte en” arte? 

A partir de entender al ser humano como expertx en lenguajes naturales y desnaturalizar esos conocimientos, nos acercamos al funcionamiento de los lenguajes de computación  con el objetivo de aprender distintas formas de crear lenguajes de programación de propósito específico que corran en la web, para la creación multimedial y la programación creativa.

El acto de programar es un acto de enunciar. Un lenguaje de programación enmarca el acto de programación -limitando, dirigiendo, dando consignas de cómo se hará la enunciación, determinando qué será fácil de decir y qué será complicado de decir en ese lenguaje.

Partiendo de una visión social de la programación, nos acercaremos a la construcción teórico-práctica con una visión expandida del concepto de lenguaje de programación, entendiendo a un lenguaje como un ecosistema de interacción + herramientas circundantes + editores + costumbres y rituales de interacción. En este taller abrimos el camino para tensionar el potencial latente de significado en los conceptos técnicos, flexibilizando conceptos de las ciencias de la computación, la lingüística, la semiótica y la teoría crítica del arte.

Dinámica propuesta

Al final de cada clase se llevarán proyectos que les pueden servir como punto de inicio para explorar a sus tiempos, y para avanzar el trabajo final – además de ejemplos de diversos grados de complejidad técnica.

El trabajo final de este taller es hacer nuestros propios lenguajes:

  • o bien planteando un conjunto de reglas formales o
  •  en un sentido más amplio, en un sistema creativo, siguiendo los conceptos que vemos en las clases. Es decir, esbozando reglas (informales) que impliquen un abecedario, un conjunto de reglas de formación de palabras y oraciones (gramática) y una semántica.

Nos va a interesar que este lenguaje se pueda usar en un contexto creativo: que sirva para la generación de poemas, o como interfaz para modificar imágenes, o como instrumento musical, o que se involucre de forma comprometida con el concepto de interfaz, etc.

Tecnologías que se explorarán: Javascript. npm. node. Nearleyjs. ToneJs. Hydra. NLPjs. Piet.

Destinatarixs

Artistas visuales, sonoros, poetas, docentes, programadorxs, lingüistas y todas las personas interesadas en desarrollar a través de la práctica intuiciones y una visión profunda acerca de la programación creativa y de la construcción de sentidos a partir de alli.

Conceptos clave

Semiótica, Arte Multimedia y Digital, Compiladores, Lingüística, Filosofía de la computación, Programación Creativa.

Requerimientos

Se asumen conocimientos previos básicos o experiencias previas de las tecnologías HTML, CSS y JS. No se asumen conocimientos previos de compiladores ni de ciencias de la computación, más allá de saber conceptos básicos de programación (por ej: variables, bucles, librerías, condicionales).

Contenidos

Clase 1

Desnaturalizando nuestra expertise en lenguajes (naturales): Las estructuras internas de todo texto. Programar como un acto de comunicación múltiple y transformación bidireccional. Programación como cooperación comunicativa humanx-computadora. Que interpretamos textos implica que podemos intuir cómo una computadora entiende un programa (intro a compiladores). Una implementación naive de un compilador en JS vanilla para implementar un lenguaje creativo simple de dibujo. 

Clase 2

Lenguajes formales. Sintaxis – Semántica de un programa – Gramática de un lenguaje. Fases de interpretación de un texto. Backus Naur Form (BNF) paso a paso.  Usando NearleyJS para crear lenguajes + automatizar partes de escritura de compiladores. Análisis del lenguaje Mercury para la programación en vivo de música electrónica. Diseño de lenguajes: DSLs vs Lenguajes de uso general, lenguajes esotéricos, Human-computer interaction (HCI).

Clase 3

Vocabulario de compiladores: tokenizer/lexer, parser, AST, semantic analysis, code generator. Lenguajes con análisis semántico usando NearleyJS y mooJS. Un sistema creativo inspirado en poemas, con arquitectura convencional a nivel programático. Diseño de lenguajes: ergonomía, fricción, “dificultad de uso”, tiempos de programación, lenguajes por analogía. Analisis del lenguaje Hydra para la creación de visuales audiorreactivas en tiempo real.

Clase 4

La autonomía del arte computacional y la construcción de sentidos. ¿Cómo se mueve el sentido en una obra hecha con computadora? ¿Cuándo un programa “se convierte en” arte? Los textos abiertos y la obra de arte digital. Consecuencias conceptuales de las decisiones de diseño de un lenguaje de programación. Compartimos nuestros trabajos!

Bio de Karen Palacio

Karen Palacio es una live coder, programadora y artista digital de Córdoba Capital, Argentina. Es diplomada en Ciencias de Datos del FaMAFyC, estudia la Lic en Ciencias de la Computación en el FaMAFyC y trabaja como A.I. Software Architect en una empresa de Software de Córdoba Capital. Como live coder de visuales ha hecho performances de improvisación de código en Cosquín, encuentros de noise, conferencias de tecnología, museos, y fiestas electrónicas -entre otros lugares- llegando a programar hasta 5 horas seguidas en vivo.

Duración: 4 clases // inicio 10 de noviembre

Valores del taller AR$ 8200 (Transferencia bancaria) – USD 85 (PayPal)

Python aplicado al arte

Taller teórico-práctico a cargo de Flavia Laudado y David Vinazza

Python es muy versátil y está presente en muchísimos y variados usos vinculados a la exploración multimedial: desde aplicaciones de aprendizaje automático pasando por programas de creatividad y ejecución digital hasta el desarrollo de videojuegos, es frecuente encontrar algún tipo de integración con este lenguaje. Utilizando el arte generativo como un disparador amplio y un posible escenario de acción, invitamos a aprovechar la accesibilidad y simpleza de Python para programar y diseñar algoritmos de forma creativa.

El taller está orientado a quienes quieran comenzar a programar con Python de forma creativa, navegando el límite difuso entre el arte y la programación. Se propone brindar una vasta introducción a la programación en Python, desde la perspectiva del código creativo y el arte generativo, partiendo de conceptos básicos y mutables para abordar ambas prácticas de forma exploratoria y colectiva, a partir de la construcción de un glosario vivo que dé cuenta del desarrollo del taller desde una perspectiva técnico-estética y de los debates que surjan.



El taller está orientado a personas que quieran introducirse en el arte generativo y la

programación creativa, mediante el lenguaje Python, con una perspectiva lúdica, buscando

experimentar y desarrollar algoritmos generativos.

*No se requieren conocimientos previos de programación


Taller teórico-práctico [on line]

8 encuentros teórico/prácticos de 2hs

+2 encuentros de apoyo de 2 hs

inicio 17 de Noviembre / 10 encuentros en 5 semanas

Lunes y Miércoles

18:30 a 20:30 hs (Chile – Arg) // 16:30 a 18:30 hs (Perú – Colombia – Ecuador – CDMX)

Valores:

AR$ 9200

USD 120

Contenidos:

Encuentro 1

Introducción al Arte Generativo

■ Definición general

■ Referencias

○ Introducción a Python

■ Diferencias con otros lenguajes

○ Recursos disponibles

Encuentro 2

Configuración de PyCharm para el taller

○ Elementos de Python

■ Variables y Tipos de datos

■ Funciones

○ Programa generativo

■ 20 GOTO 10

○ Referencias

■ Generatividad sin computadora

Encuentro 3

Elementos de Python

■ Diccionarios

■ Listas

○ Librerías y Frameworks

■ p5 (Análogo a Processing.py)

○ Funciones gráficas

○ Glosario vivo

○ Referencias

■ Inicios de la computación

ENCUENTRO 4: CLASE DE APOYO 1 – TEMÁTICA LIBRE A ELECCIÓN DE LXS PARTICIPANTES

Encuentro 5

Sistemas de referencia

■ Colores y coordenadas

○ Elementos de Python

■ Bucles y Expresiones condicionales

○ Programa generativo

■ Perlin Noise Pulsar

○ Referencias

■ Paletas de colores

Encuentro 6

Reglas en un sistema generativo

○ Librerías y Frameworks

■ pygame

○ Juego generativo

○ Referencias

■ Error y glitch como estética

Encuentro 7

Programación Orientada a Objetos

○ Elementos de Python

■ Clases, métodos y propiedades

○ Programa generativo

■ Game of Life

○ Referencias

■ Determinismo y aleatoriedad

■ Repetición y azar

ENCUENTRO 8: CLASE DE APOYO 2 – TEMÁTICA LIBRE A ELECCIÓN DE LXS PARTICIPANTES

Encuentro 9

Aplicación de funciones trigonométricas

○ Librerías y Frameworks

■ opencv

■ Programa generativo

■ Sistema de partículas

○ Referencias

■ Arte y matemática

Encuentro 10

Interactividad

○ Librerías y Frameworks

■ Requests

■ Midi

■ OSC

○ Cierre del Taller

Acerca de lxs docentes a cargo:

Flavia Laudado @flavlaudado

Flavia es oriunda de Ushuaia y está radicada hace más de una década en Buenos Aires. Finalizó sus estudios en la Licenciatura en Artes Electrónicas en el año 2018. Es docente y desarrolladora de dispositivos e instalaciones en entornos programables, aplicándose en ámbitos como imagen digital, electrónica, robótica y programación creativa. Sus espacios referenciales son la fotografía, el cine, la literatura, la naturaleza y lo cotidiano como fuente de inspiración. Ha trabajado de forma colaborativa e individual supliendo necesidades electrónicas para artistas y empresas, y de manera formal en espacios educativos como la Universidad de Tres de Febrero y Flexible Laboratorio.

David Vinazza @camposdebeats

David trabaja desde hace 15 años en el sector tecnológico, especialmente en infraestructura y automatización. Estudió Ingeniería Electrónica en la UTN FRBA, además de algunos seminarios orientados a la computación de alto desempeño. Es lector asiduo de ciencia ficción y entusiasta de la tecnología. Se considera programador creativo desde el 2015, cuando descubrió Processing de casualidad buscando crear visuales interactivas para su banda. Desde entonces ha participado en numerosos proyectos artísticos y predica un abordaje distinto a la programación y el software libre.