An “ecotone” is a region of transition between two biological communities which is richer in species than both.1
Our exhibition Ecotone distills the creative outflows of the Glitch community of artists and technologists. This growing network considers digital and natural ecologies to be innately entangled, with cross-border collaboration a vital means of generating new social realities. Involving over 60 participants from around the world, Glitch is a spectrum of strategies and a model for a new creator ecology — artistic, poetic, and human-machinic.
For this show with Feral File, Glitch is represented by a number of leading artists, whose range of approaches reflects the plurality of the community. Their works are the product of cross-pollination, and so a number of non-exhibitors have chosen to share their words here.
Glitch is the scientists’ explanation of how life came into existence by a series of progressive chemical reactions and not by an act of God. But then, observe how we come together and merge creativity, our will, and the power of love to make the world a better place. Suddenly, we realize that we have created something new that survives us. The unpredictable timing of creative completion is proof of a divine force at play: it must be the Glitch.
— Yessin Schiegg
Glitch means multi-species connections, re-imagining nature and cities, and how we can find common ground in both our physical and digital states, in our cyborg bodies, aware of our own viscosity and our uncanniness, to form a network of solidarity. Glitch urges every cell of our anti-body to move and create in a constant state of interconnectivity. To me, that means restlessly sharing knowledge and creating experiences which encourage radical and sensual play.
— Leonie Schramm
Écotone,
Notre monde, notre climat,
Notre communauté, Notre Écosystèmes,
Notre Flux, Notre énergie,
Notre Union, Notre harmonie,
Notre conviction, Notre Ambition,
L’utopie.
L’imagination, Le rêve,
La transformation, La transition,
La réinventions, L’evolution,
L’Amour.
Soigner,
Comprendre, Apprendre,
Corriger,
Le présent.
— Vanille Verloës
BioGlitch
Co-created mechanisms for life and connection,
Bionomic interfaces for collective manifestation,
Extitutional relationships transcending isolation,
Architected porosity and sovereign identification:
For trees and animals, mountains and rivers,
Every multiplicity of I, and us.
Data and Wisdom Oracles align our resonance,
BioGlitch NFTs amplify our experience,
With artists and musicians weaving into our presence,
Vitals and knowledge of ecological elements:
That these rhizomes might glitch in us
Encoded, physical, legal, chemical, spiritual: Technoetic
Awareness of, by, and for all life.
— Tony Lai
pragma solidity ^0.8.0;
contract GlitchText {
/*
contract for the glitch collective fill-in hypertext
creates a living participatory record of lived glitch x-perience
--
There are 80 blankspaces, indexed 0-79
Each blankspace can be filled in with text (a string) by calling the changeWord function
changeWord takes an index value (0-79) and changes the text at that index
changeWord costs ETH to run
Starting minimum price to run changeWord is .01 ETH
The next minimum price is double the amount of eth spent to previously run the function on a particular index
@dev forgoing safemath given hard monetary limits on abuse of multiplication
*/
mapping(uint256 => Word) public index;
struct Word {
// price == 0 indicates Word is not initialized
uint256 price;
uint256 spent;
string text;
// iteration also indexes from 0
uint256 iteration;
}
// 80 total words as we index starting with 0
uint256 constant public WORD_COUNT = 79;
uint256 constant public INIT_PRICE = 10**16;
address payable GlitchPayout;
event wordUpdated(uint256 index, uint256 price, uint256 spent, string text, uint256 iteration, address changer);
modifier hasInboundsIndex(uint256 _i) {
require(_i >= 0 && _i <= WORD_COUNT, "Index out of bounds");
_;
}
constructor (address payable _GlitchPayout) {
GlitchPayout = _GlitchPayout;
}
function changeWord(uint256 _index, string memory _text) public payable hasInboundsIndex(_index) {
require(bytes(_text).length > 0, "No empty stringz");
Word storage _word = index[_index];
_word.price == 0 ?
require (msg.value >= INIT_PRICE) :
require (msg.value >= _word.price);
_word.price = msg.value * 2;
_word.spent = _word.spent + msg.value;
_word.text = _text;
GlitchPayout.transfer(msg.value);
emit wordUpdated(_index, _word.price, _word.spent, _word.text, _word.iteration, msg.sender);
_word.iteration ++;
}
function checkWord(uint256 _index) public view hasInboundsIndex(_index) returns(uint256 _price, uint256 _spent, string memory _text, uint256 _iteration) {
Word memory _word = index[_index];
_price = _word.price;
_spent = _word.spent;
_text = _word.text;
_iteration = _word.iteration;
}
}
— Louis Parker
1. From Apple dictionary