aglaia 2 months ago
commit 7f8e6efb01

1
.gitignore vendored

@ -0,0 +1 @@
images/

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

@ -18,7 +18,8 @@ Solar Sibling is an online performance of shared loss and the complex pain that
Hermit Fantasy is a short story about a bot who wants to be a hermit. Inspired by an email response from a survey I conducted about receiving emotional support on the Internet, this story explores the contradiction of being online while wanting to disconnect. It is a web play inviting you to navigate both of these feelings.
Good Pie is a great big play of pies, a performance that took a year to bring together. It had three phases. First, as my friends left, I baked each of them a goodbye pie. Then I hosted two performances. In the first, I asked participants to eat cake, sitting facing or away from each other and sharing their stories about cake and the Internet. In the second I predicted participants' future lives on the Internet using felted archetypes and received stories from their Internet past in return. This website is a reflection of all these experiences. Each Good Pie has a filling that tells a story, merging the bodily with the digital and making a mess of it all.
Cake Intimacies is a performance that took a year to bring together. It is a small selection of stories people told me and I held to memory and rewrote here. The stories come from two perfomances I hosted. In the first, I asked participants to eat cake, sitting facing or away from each other and sharing their stories about cake and the Internet. The second perfomance was hosted at the Art Meets Radical Openness Festival, as part of the Turning of the Internet workshop. For this performance I predicted participants' future lives on the Internet using felted archetypes and received stories from their Internet past in return.
Now the stories are here, each of them a cake with a filling that tells a story, merging the bodily with the digital and making a mess of it all.
I love you and hope you see what I saw in these stories.

@ -153,7 +153,7 @@ legitimacy of his connections, finding no way to do so except by
emphasizing their tangible bodily experiences. The communitys claim to
authenticity thus had to lie in the physical experiences of its members—
the visible bodies and hearable voices, the weddings, births, and
funerals (1993). (1).</p>
funerals (1993). <sup><span class="margin-note"> Youre dreaming again, good. <br>Would you feel closer to me if you could hear my voice?<br> Is my voice a sound? Could it be a feeling?</span></sup>.</p>
<p>Even then, and even by people with no interest in undermining the
value of the virtual, the distinction between physical and virtual was
confusing. Rheingold himself reinforces the boundary of body relations

@ -205,7 +205,7 @@ his connections, finding no way to do so except by
emphasizing their tangible bodily experiences.
The communitys claim to authenticity thus had to lie in the physical experiences of its members— the visible
bodies and hearable voices, the weddings, births, and
funerals (1993). (1).
funerals (1993).<sup><span class="margin-note"> Youre dreaming again, good. <br>Would you feel closer to me if you could hear my voice?<br> Is my voice a sound? Could it be a feeling?</span></sup>.
Even then, and even by people with no interest in
undermining the value of the virtual, the distinction
@ -586,7 +586,7 @@ expanding without ever concluding. They embody a
richness that transcends conventional boundaries,
blending into one another infinitely.
[Figure 1 - Harmonic Series to 32 (Hyacint,2017).]
![Figure 1 - Harmonic Series to 32 (Hyacint,2017).](Harmonic_series.png)
By likening digital bodies to divergent series, we
embrace the complexity and infinite possibilities

Binary file not shown.

Binary file not shown.

@ -4,6 +4,7 @@
<title></title>
<meta charset="utf-8">
<script src="paged.js/paged.polyfill.js"></script>
<script src="plugins/marginNotes.js" type="text/javascript"></script>
<link href="paged.js/pagedjs.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="print_style.css">
</head>

@ -0,0 +1,62 @@
/* Image sizes */
figure{
margin: 5mm 0;
}
.full-image{
break-before: right;
height: 186mm;
width: 133mm;
margin: -13mm 0 0 -30mm;
position: relative;
object-fit: cover;
}
.full-image figure{
margin: 0;
}
.full-image figcaption{
position: absolute;
bottom: 15mm;
left: 30mm;
z-index: 10;
padding-right: 20mm;
}
.full-image img{
height: 186mm;
width: 133mm;
object-fit: cover;
}
.small-images figure{
margin: 1mm;
}
.small-images figcaption{
margin-top: -2mm;
}
.small-images img{
width: 70mm;
}
.white-caption + figcaption{
color: #fff;
}
.centered-image, .centered-text{
break-before: right;
height: 186mm;
width: 133mm;
margin: -13mm 0 0 -30mm;
position: relative;
object-fit: cover;
display: flex;
align-items: center;
}
.centered-image figure{
margin: 0 0 0 30mm;
width: 90mm;
}
.centered-text > *{
width: 100%;
text-align: center;
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,255 @@
let classNotes = "margin-note"; // ← Change the CLASS of the notes here
let notesFloat = "outside"; // ← Change the POSITION of the notes here
class marginNotes extends Paged.Handler {
constructor(chunker, polisher, caller) {
super(chunker, polisher, caller);
}
beforeParsed(content) {
let notes = content.querySelectorAll("." + classNotes);
for (let i = 0; i < notes.length; ++i) {
// Add call notes
var spanCall = document.createElement("span");
spanCall.classList.add("note-call");
spanCall.classList.add("note-call_" + classNotes);
spanCall.dataset.noteCall = classNotes + '-' + i + 1;
notes[i].parentNode.insertBefore(spanCall, notes[i]);
// Add marker notes
var spanMarker = document.createElement("span");
spanMarker.classList.add("note-marker");
spanMarker.classList.add("note-marker_" + classNotes);
spanMarker.dataset.noteMarker = classNotes + '-' + i + 1;
notes[i].prepend(spanMarker);
// Hide notes to avoid rendering problems
notes[i].style.display = "none";
}
/* NOTE FLOAT ---------------------------------------------------------------------------------- */
let positionRight = 'left: calc(var(--pagedjs-pagebox-width) - var(--pagedjs-margin-left) - var(--pagedjs-margin-right) - 1px); width: var(--pagedjs-margin-right);';
let positionLeft = 'left: calc(var(--pagedjs-margin-left)*-1 - 1px); width: var(--pagedjs-margin-left);'
let notePosition;
switch (notesFloat) {
case 'inside':
notePosition = '.pagedjs_left_page .' + classNotes + '{' + positionRight + '} \
.pagedjs_right_page .' + classNotes + '{' + positionLeft + '}';
break;
case 'left':
notePosition = '.pagedjs_left_page .' + classNotes + '{' + positionLeft + '} \
.pagedjs_right_page .' + classNotes + '{' + positionLeft + '}';
break;
case 'right':
notePosition = '.pagedjs_left_page .' + classNotes + '{' + positionRight + '} \
.pagedjs_right_page .' + classNotes + '{' + positionRight + '}';
break;
default:
notePosition = '.pagedjs_left_page .' + classNotes + '{' + positionLeft + '} \
.pagedjs_right_page .' + classNotes + '{' + positionRight + '}';
}
/* SPECIFIC CSS ---------------------------------------------------------------------------------- */
addcss('\
body {\
counter-reset: callNote_' + toCamelClassNote(classNotes) + ' markerNote_' + toCamelClassNote(classNotes) + ';\
}\
\
.' + classNotes + '{\
position: absolute;\
text-align-last: initial;\
box-sizing: border-box;\
}\
\
.note-call_' + classNotes + ' {\
counter-increment: callNote_' + toCamelClassNote(classNotes) + ';\
}\
\
.note-call_' + classNotes + '::after {\
content: counter(callNote_' + toCamelClassNote(classNotes) + ');\
}\
\
.note-marker_' + classNotes + ' {\
counter-increment: markerNote_' + toCamelClassNote(classNotes) + ';\
}\
.note-marker_' + classNotes + '::before {\
content: counter(markerNote_' + toCamelClassNote(classNotes) + ') ". ";\
}\
' + notePosition);
} /* end beforeParsed*/
afterPageLayout(pageElement, page, breakToken) {
let notes = pageElement.querySelectorAll("." + classNotes);
let noteOverflow = false;
let notesHeightAll = [];
if (typeof (notes) != 'undefined' && notes != null && notes.length != 0) {
for (let n = 0; n < notes.length; ++n) {
// Display notes of the page
notes[n].style.display = "inline-block";
// Add height of the notes to array notesHeightAll
let noteHeight = notes[n].offsetHeight;
notesHeightAll.push(noteHeight);
// Add margins of the notes to array notesHeightAll
if (n >= 1) {
let margins = biggestMargin(notes[n - 1], notes[n]);
notesHeightAll.push(margins);
}
}
/* FIT PAGE ------------------------------------------------------------------------------------- */
// Calculate if all notes fit on the page;
let reducer = (accumulator, currentValue) => accumulator + currentValue;
let allHeight = notesHeightAll.reduce(reducer);
let maxHeight = pageElement.querySelectorAll(".pagedjs_page_content")[0].offsetHeight;
if (allHeight > maxHeight) {
/* IF DOESN'T FIT ----------------------------------------------------------------------------- */
// positions all the notes one after the other starting from the top
notes[0].style.top = parseInt(window.getComputedStyle(notes[0]).marginBottom, 10) * -1 + "px";
for (let a = 1; a < notes.length; ++a) {
let notePrev = notes[a - 1];
let newMargin = biggestMargin(notePrev, notes[a]);
let newTop = notePrev.offsetTop + notePrev.offsetHeight - marginNoteTop(notes[a]) + newMargin;
notes[a].style.top = newTop + "px";
}
// alert
let pageNumber = pageElement.dataset.pageNumber;
alert("Rendering issue \n ☞ A marginal note overflow on page " + pageNumber + " (this is because there is too many on this page and paged.js can't breaks notes between pages for now.)");
noteOverflow = true;
} else {
/* PUSH DOWN ---------------------------------------------------- */
for (let i = 0; i < notes.length; ++i) {
if (i >= 1) {
let noteTop = notes[i].offsetTop;
let notePrev = notes[i - 1];
let newMargin = biggestMargin(notes[i], notePrev);
let notePrevBottom = notePrev.offsetTop - marginNoteTop(notePrev) + notePrev.offsetHeight + newMargin;
// Push down the note to bottom if it's over the previous one
if (notePrevBottom > noteTop) {
notes[i].style.top = notePrevBottom + "px";
}
}
}
/* PUSH UP ---------------------------------------------- */
// Height of the page content
let contentHeight = pageElement.querySelectorAll(".pagedjs_page_content")[0].querySelectorAll("div")[0].offsetHeight;
// Check if last note overflow
let nbrLength = notes.length - 1;
let lastNote = notes[nbrLength];
let lastNoteHeight = lastNote.offsetHeight + marginNoteTop(lastNote);
let noteBottom = lastNote.offsetTop + lastNoteHeight;
if (noteBottom > contentHeight) {
// Push up the last note
lastNote.style.top = contentHeight - lastNoteHeight + "px";
// Push up previous note(s) if if it's over the note
for (let i = nbrLength; i >= 1; --i) {
let noteLastTop = notes[i].offsetTop;
let notePrev = notes[i - 1];
let notePrevHeight = notePrev.offsetHeight;
let newMargin = biggestMargin(notePrev, notes[i]);
let notePrevBottom = notePrev.offsetTop + notePrev.offsetHeight + newMargin;
if (notePrevBottom > noteLastTop) {
notePrev.style.top = notes[i].offsetTop - marginNoteTop(notePrev) - notePrevHeight - newMargin + "px";
}
}
} /* end push up */
}
}
}/* end afterPageLayout*/
}
Paged.registerHandlers(marginNotes);
/* FUNCTIONS --------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------- */
// MARGINS
function marginNoteTop(elem) {
let marginTop = parseInt(window.getComputedStyle(elem).marginTop, 10)
return marginTop;
}
function marginNoteBottom(elem) {
let marginBottom = parseInt(window.getComputedStyle(elem).marginBottom, 10)
return marginBottom;
}
function biggestMargin(a, b) {
let margin;
let marginBottom = marginNoteBottom(a);
let marginTop = marginNoteTop(b);
if (marginBottom > marginTop) {
margin = marginBottom;
} else {
margin = marginTop;
}
return margin;
}
// ADD CSS
function addcss(css) {
var head = document.getElementsByTagName('head')[0];
var s = document.createElement('style');
s.setAttribute('type', 'text/css');
if (s.styleSheet) { // IE
s.styleSheet.cssText = css;
} else {// the world
s.appendChild(document.createTextNode(css));
}
head.appendChild(s);
}
// CAMEL CLASS NOTE
function toCamelClassNote(elem) {
let splitClass = elem.split("-");
if (splitClass.length > 1) {
for (let s = 1; s < splitClass.length; ++s) {
let strCapilize = splitClass[s].charAt(0).toUpperCase() + splitClass[s].slice(1)
splitClass[s] = strCapilize;
}
}
let reducer = (accumulator, currentValue) => accumulator + currentValue;
let classCamel = splitClass.reduce(reducer);
return classCamel;
}

@ -1,4 +1,5 @@
/* @import url('https://pad.xpub.nl/p/sixx-print-css/export/txt') */
@import "images.css"; /* Using a string */
:root{
/* --spot-color-1: #53018e; */
@ -6,67 +7,79 @@
--baseline: 4mm;
--margin-left: 10mm;
}
@font-face {
font-family: 'Platypi';
src: url('../fonts/webfonts/Platypi-Regular.woff2');
font-weight: normal;
}
@font-face {
font-family: 'Platypi';
src: url('../fonts/webfonts/Platypi-Italic.woff2');
font-weight: bold;
}
@note-area {
float: bottom;
float-reference: page;
width: 100½;
max-height 80%;
}
notes{
position: note(sidenotes);
}
@media print{
@page{
size: 130mm 180mm;
marks: crop; /* can also add cross */
bleed: 3mm;
margin: 10mm;
margin: 25mm;
print-color-adjust: exact;
margin-top: 10mm;
margin-bottom: 15mm;
@bottom-center{
content: string(title, first);
position: relative;
text-align: left;
font-size: 7pt;
}
}
@page:left {
margin-right: 30mm;
/* bleed: 3mm 0 3mm 3mm; */
@bottom-left {
font-size: 9px;
font-size: 7pt;
top: -3mm;
position: relative;
content: counter(page);
width: 5mm;
}
}
@page:right {
margin-left: 30mm;
margin-top: 10mm;
margin-bottom: 15mm;
/* bleed: 3mm 3mm 3mm 0; */
@bottom-center{
text-align: right;
}
@bottom-right {
font-size: 9px;
font-size: 7pt;
top: -3mm;
position: relative;
right:0mm;
content: counter(page);
width: 5mm;
}
/* @left-top {
font-family: 'worksans';
font-size: 9px;
overflow-x: visible;
transform: rotate(90deg);
content: "DOCUMENTATION OF GAMES AND RITUALS, KICK OFF SESSIONS";
} */
}
}
a{
text-decoration: none;
color: #000;
}
blockquote{
margin-left: 0;
margin-right: 0;
}
.centered-image, .centered-text{
display: flex;
align-items: center;
/* justify-content: center; */
}
.centered-image figure{
margin: 0 0 0 30mm;
width: 90mm;
}
.centered-text > *{
width: 100%;
text-align: center;
.margin-note{
font-size: 7pt;
line-height: 3mm;
text-align: left;
width: 35mm;
display: inline-block;
}
.code pre{
font-size: 0.8em;
@ -74,58 +87,22 @@ blockquote{
white-space: pre-wrap;
}
#contenteo{
font-family: 'Platypi';
font-family: 'Platypi-Regular','platypi' ;
line-height: 1.3;
font-size: 12px;
font-size: 9pt;
letter-spacing: -0.1px;
line-height: var(--baseline);
}
figure{
margin: 5mm 0;
}
.full-image, .centered-image, .centered-text{
break-before: right;
height: 186mm;
width: 133mm;
margin: -13mm 0 0 -30mm;
position: relative;
object-fit: cover;
}
.full-image figure{
margin: 0;
}
.full-image figcaption{
position: absolute;
bottom: 15mm;
left: 30mm;
z-index: 10;
padding-right: 20mm;
}
.white-caption + figcaption{
color: #fff;
}
.full-image img{
height: 186mm;
width: 133mm;
object-fit: cover;
}
img{
width: 100%;
break-before: page;
}
h1,h2,h3,h4,h5,h6{
font-size: 1.2em;
line-height: 1;
string-set: title content(text);
}
h1{
font-size: 1.8rem;
break-after: page;
margin: 0;
padding: 0;
/* margin: 0; */
/* padding: 0; */
}
h1#colophon{
break-after: unset;
@ -138,51 +115,25 @@ h6{
/* color: #fff; */
height: 176mm;
width: 133mm;
margin: -13mm 0 0 -30mm;
padding: 86mm 10mm 0;
/* margin: -13mm 0 0 -30mm;
padding: 86mm 10mm 0; */
text-align: center;
}
ol, ul{padding: 0;}
div#licence ol, div#licence ul{
padding-left: 5mm;
}
.page-break{
break-after: page;
}
section{
break-after: page;
}
.section{
break-before: left;
page: section;
}
@media print{
@page section:first {
margin: 10mm;
margin-right: 20mm;
}
}
#section-5 h3, #section-21 h3{
break-before: page;
}
::selection{
background-color: var(--spot-color-1);
color: #ccc;
}
.simlish{
font-family: 'Simlish';
}
.small-images figure{
margin: 1mm;
}
.small-images figcaption{
margin-top: -2mm;
}
.small-images img{
width: 70mm;
}
.toc{
break-before: right;
}
@ -198,17 +149,4 @@ section{
.toc-title a::after{
content: target-counter(attr(href url), page);
float: right;
}
#worry-dolls figcaption{display: none;}
#worry-dolls img{
break-before: page;
display: block;
position: relative;
top: 20mm;
left: 50mm;
width: 10mm;
}
.yt-tarot-images{
margin-top: 29.5mm;
}

@ -15,20 +15,23 @@ Libraries as complex social infrastructures.
The release of the Special Issue 19 was a momentary snapshot of the current state of a library seen through the metaphor of gardening; pruning, gleaning, growing, grafting and harvesting. Garden Leeszaal is an open conversation; a collective writing tool, a cooperative collage and an archive. We asked everyone to think of the library as a garden. For us, being a gardener means caring; caring for the people and books that form this space.
During the collective moment in Leeszaal people started diving into recycle bins, grab books, tear pages apart, drawing, pen plotting, weaving words together, cutting words, removing words, overwriting, printing, scanning. It was magical having an object in the end. A whole book made by all of us in that evening. Stations, machines, a cloud of cards, a sleeve that warms up THE BOOK.
![Bobi's station - Name of the Station and Description](imagename.png)
![Irmak's and Aglaia's station - Name of the Station and Description](imagename.png)
![Stephen's station name- Name of the Station and Description](imagename.png)
![Ada's Station - Name of the Station and Description](imagename.png)
![Cara's station name- Name of the Station and Description](imagename.png)
![Book recycle bins description](imagename.png)
![Cloud of gards with instructions to be performed into the books](imagename.png)
![inside page of the final book](imagename.png)
![Photo of the book - cover and sleeve](imagename.png)
![How to play leeszal as a process image to how the cards evolved](imagename.png)
![image from social practice library about librarying](imagename.png)
![map of leeszaal also can be there](imagename.png)
During the collective moment in Leeszaal people started diving into recycle bins, grabbing books, tearing pages apart, drawing, pen plotting, weaving words together, cutting words, removing words, overwriting, printing, and scanning. It was magical having an object in the end. A whole book was made by all of us that evening. Stations, machines, a cloud of cards, a sleeve that warms up THE BOOK.
![Irmak's and Aglaia's Pruning station, where people edited punctuation and text, scanned it then printed it with a dot matrix.](pruning.jpg)
![Cloud of cards with instructions to be performed on the books](card-cloud-leeszaal.jpg)
![The final book produced that evening, the cover was made from hand-stiched covers of discarded books. ](final-book.jpg)
![Page of the final book containing scans of the edited book, an instruction card, a pen-plotted bookmark with a quote from the book and a sprig of mint.](mint-scan.jpg)
![Page of the final book containing scans of a drawn on book, an instruction card and a pen-plotted bookmark with a quote from the book.](drawn-book.jpg)
![Page of the final book containing scans of edited books, a hand and coins.](hand-scan.jpg)
![Page of the second edition, containing scans of edited books and instruction cards.](second-edition-open.jpg)
![The second edition of the final book from the event.](second-edition.jpg)
![People choosing books from the discarded books bins, behind the instructions cards cloud.](people-bins.jpg)
![Part of the Pruning process, the editing of a book page.](editing.jpg)
![Bin of discarded books from Leeszal.](open-bin.jpg)
![The binding of the scans into the final book at the end of the evening.](binding.jpg)

@ -10,16 +10,16 @@ Console is an oracle; an emotional first aid kit that helps you help yourself. C
Special Issue XX was co-published by xpub and Page Not Found, Den Haag. With guest editors Lídia Pereira ♈and Artemis Gryllaki ♐ we unraveled games and rituals, mapping the common characteristics and the differences between games and rituals in relation to ideology and counter-hegemony. We practiced, performed and annotated rituals, connected (or not) with our cultural backgrounds while we questioned the magic circle. We dived into the worlds of text adventure games and clicking games while drinking coffee. We talked about class, base, superstructure, (counter)hegemony, ideology and materialism. We discussed how games and rituals can function as reproductive technologies of the culture industries. We annotated games, focusing on the role of ideology and social reproduction. We reinterpreted bits of the world and created stories from it (modding, fiction, narrative) focusing on community, interaction, relationships, grief and healing.
![Holographic Oracle Deck](imagename.jpg)
![Reading with the Oracolotto cards.](imagename.jpg)
![Worry Dolls](imagename.jpg)
![Screenprinted book cover of the Console Booklet, from The Upside Down Oracolotto card.](imagename.jpg)
![Nighttime Ritual: Guided meditation from cardboardlamb](imagename.jpg)
![Imagined tarot cards based on YouTube comments](imagename.jpg)
![Laser engraved quote from Silvia Federici, Love is the great magician..](imagename.jpg)
![Console box with Fiction Friction, Oracolotto, the Wheel of Fortune, a Worry Doll, tea and a tealight.](imagename.jpg)
![Screenprinted cover of the Console box.](imagename.jpg)
![SIXX Licence reading ceremony at Page Not Found. The copyleft licence for this object included (in additional permission 4b) a term specifying the ritual absorption of intellectual property. ](imagename.jpg)
![Fiction Friction gameplay during the launch at Page Not Found.](imagename.jpg)
![Modified tetris fantasies](imagename.jpg)
![Holographic Oracle Deck](holographic.jpg)
![Reading with the Oracolotto cards.](oracolotto.jpg)
![Worry Dolls](worrydolls.jpg)
![Screenprinted book cover of the Console Booklet, from The Upside Down Oracolotto card.](console-book.jpg)
![Nighttime Ritual: Guided meditation from cardboardlamb](cara-ritual.jpg)
![Imagined tarot cards based on YouTube comments](youtube-tarot.jpg)
![Laser engraved quote from Silvia Federici, Love is the great magician, the demon that unites earth and sky and makes humans so round, so whole in their being, that once united they cannot be defeated.](federici.jpg)
![Console box with Fiction Friction, Oracolotto, the Wheel of Fortune, a Worry Doll, tea and a tealight.](console-open.jpg)
![Screenprinted cover of the Console box.](console-front.jpg)
![SIXX Licence reading ceremony at Page Not Found. The copyleft licence for this object included (in additional permission 4b) a term specifying the ritual absorption of intellectual property. ](license-reading.jpg)
![Fiction Friction gameplay during the launch at Page Not Found.](fiction-friction.jpg)
![Modified tetris fantasies](tetris.jpg)

Loading…
Cancel
Save