diff --git a/resen/index.html b/resen/index.html index 4c0ea21..e276193 100644 --- a/resen/index.html +++ b/resen/index.html @@ -16,18 +16,16 @@ diff --git a/resen/kadish/fonts/Copyright_OH_SagiIdan.pdf b/resen/kadish/fonts/Copyright_OH_SagiIdan.pdf new file mode 100644 index 0000000..79e9c74 Binary files /dev/null and b/resen/kadish/fonts/Copyright_OH_SagiIdan.pdf differ diff --git a/resen/kadish/fonts/OHSagiIdan-Regular.woff2 b/resen/kadish/fonts/OHSagiIdan-Regular.woff2 new file mode 100644 index 0000000..5eda69b Binary files /dev/null and b/resen/kadish/fonts/OHSagiIdan-Regular.woff2 differ diff --git a/resen/kadish/fonts/OHSagiIdan_license_addendum.txt b/resen/kadish/fonts/OHSagiIdan_license_addendum.txt new file mode 100644 index 0000000..8d1ea5a --- /dev/null +++ b/resen/kadish/fonts/OHSagiIdan_license_addendum.txt @@ -0,0 +1,2 @@ +OH has graciously granted us permission to upload the font file to a public server, as an exception to the user license agreement. +Any downloading of the font file should be done from the project website: https://www.ot-hayim.co.il/fonts/sagi-idan/ \ No newline at end of file diff --git a/resen/kadish/index.html b/resen/kadish/index.html new file mode 100644 index 0000000..2bf000e --- /dev/null +++ b/resen/kadish/index.html @@ -0,0 +1,576 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+

+ לחוויה המלאה השתמשו במקלדת. + גופן כתב היד מכתב ידו של שגיא עידן ז"ל, מיזם + אות.חיים. +

+
+ + + + \ No newline at end of file diff --git a/resen/kadish/media/kadish1.jpg b/resen/kadish/media/kadish1.jpg new file mode 100644 index 0000000..376d141 Binary files /dev/null and b/resen/kadish/media/kadish1.jpg differ diff --git a/resen/kadish/media/kadish2.jpg b/resen/kadish/media/kadish2.jpg new file mode 100644 index 0000000..99ebc57 Binary files /dev/null and b/resen/kadish/media/kadish2.jpg differ diff --git a/resen/kadish/script.js b/resen/kadish/script.js new file mode 100644 index 0000000..aa2f2ed --- /dev/null +++ b/resen/kadish/script.js @@ -0,0 +1,79 @@ +const kadish = ` +יִתְגַּדַּל וְיִתְקַדַּשׁ שְׁמֵהּ רַבָּא. +בְּעָלְמָא דִי בְרָא כִרְעוּתֵהּ וְיַמְלִיךְ מַלְכוּתֵהּ, +וְיַצְמַח פּוּרְקָנֵהּ וִיקָרֵב מְשִׁיחֵהּ. +בְּחַיֵיכוֹן וּבְיוֹמֵיכוֹן וּבְחַיֵי דְּכָל בֵּית +יִשְׂרָאֵל, בַּעֲגַלָא וּבִזְמַן קָרִיב וְאִמְרוּ אָמֵן. +יְהֵא שְׁמֵהּ רַבָּא מְבָרַךְ לְעָלַם וּלְעָלְמֵי +עָלְמַיָּא. +יְהֵא שְׁמֵהּ רַבָּא מְבָרַךְ לְעָלַם לְעָלְמֵי עָלְמַיָּא. +יִתְבָּרַךְ וְיִשְׁתַּבַּח וְיִתְפָּאַר וְיִתְרוֹמַם וְיִתְנַשֵּׂא +וְיִתְהַדָּר וְיִתְעַלֶּה וְיִתְהַלָּל, שְׁמֵהּ דְּקֻדְשָׁא +בְּרִיךְ הוּא. +לְעֵלָא מִן כָּל בִּרְכָתָא וְשִׁירָתָא תֻּשְׁבְּחָתָא וְנֶחָמָתָא, +דַאֲמִירָן בְּעָלְמָא וְאִמְרוּ אָמֵן. +יְהֵא שְׁלָמָא רַבָּא מִן שְׁמַיָּא חַיִּים וְשָׂבָע +וִישוּעָה וְנֶחָמָה וְשֵׁיזָבָה וּרְפוּאָה וּגְאֻלָּה +וּסְלִיחָה וְכַפָּרָה וְרֵוַח וְהַצָּלָה לָנוּ וּלְכָל +עַמּוֹ יִשְׂרָאֵל וְאִמְרוּ אָמֵן. +עוֹשֶׂה שָׁלוֹם בִּמְרוֹמָיו הוּא יַעֲשֶׂה שָׁלוֹם +עָלֵינוּ וְעַל כָּל עַמּוֹ יִשְׂרָאֵל, וְאִמְרוּ אָמֵן. +` +const prefix = ` +נטרדל דרדנבי רלה נדא +כרתבה גא דנא נגרופא נגרפיח נקדומא +פירסא קונדלא דמגרס נסרטא +` +const caret_char = '_' + +const nikud_pisuk = kadish.match(/[א-ת][^א-ת]*/g).map(m => m.slice(1)) +const prefix_chars = prefix.match(/[א-ת]/g) +console.log(nikud_pisuk.length, prefix_chars.length + document.querySelectorAll('svg text').length) + +function update_caret(current) { + if (current) + current.classList.remove('blink') + const caret = document.querySelector('svg text:empty') + if (caret) { + caret.textContent = caret_char + caret.classList.add('blink') + } + if (current) { + (caret || current).scrollIntoView({behavior: 'smooth'}) + document.activeElement.blur() + } + return caret +} +const first = update_caret() + +document.addEventListener('keydown', event => { + if (event.altKey || event.ctrlKey || event.metaKey) + return + const chars = [...document.querySelectorAll('svg text:not(:empty)')] + const current = chars.pop() + if (event.key.match(/[א-ת]/) && current.textContent == caret_char) { + current.textContent = event.key + let caret = update_caret(current) + if (!caret && !play.classList.contains('on')) + play.click() + } + else if (event.key == 'Backspace' && current != first) + { + if (current.textContent == caret_char) + chars.pop().textContent = '' + current.textContent = '' + update_caret(current) + } else if (event.key == ' ' && event.target == document.body) + event.preventDefault() +}) + +play.addEventListener('click', event => { + if (play.classList.toggle('on')) { + const utter = new SpeechSynthesisUtterance([...prefix_chars, ...document.querySelectorAll('svg text:not(:empty):not(.blink)')].map((e, i) => (e.textContent ?? e) + nikud_pisuk[i]).join('')) + console.log(utter.text) + utter.lang = 'he' + utter.rate = .6 + utter.onend = e => {if (e.charIndex && e.charIndex % utter.text.length == 0) play.click()} + speechSynthesis.speak(utter) + } else speechSynthesis.cancel() +}) \ No newline at end of file diff --git a/resen/kadish/snippet b/resen/kadish/snippet new file mode 100644 index 0000000..37dd937 Binary files /dev/null and b/resen/kadish/snippet differ diff --git a/resen/kadish/style.css b/resen/kadish/style.css new file mode 100644 index 0000000..8edaf05 --- /dev/null +++ b/resen/kadish/style.css @@ -0,0 +1,36 @@ +@font-face { + font-family: ktiv; + font-display: block; + src: url('fonts/OHSagiIdan-Regular.woff2'); +} + +svg { + margin-inline: auto; + width: 100%; +} + +image { + height: 100%; + width: 100%; +} + +g { + translate: 1px -1.5px; +} + +text { + font-family: ktiv; + text-anchor: end; + dominant-baseline: hanging; + font-size: .45rem; + fill: #c13a16; + scroll-margin-top: min(25rem, 50vh); +} + +@keyframes blink { + 50% { opacity: 0 } +} + +.blink { + animation: 1.5s infinite steps(1) blink; +} \ No newline at end of file diff --git a/resen/pages.js b/resen/pages.js index 3ec26d9..73d3539 100644 --- a/resen/pages.js +++ b/resen/pages.js @@ -8,7 +8,8 @@ const pages = { "receptacle/": {title: "כלי קיבולת", alt: "Receptacle", author: "amitbenami", kw: ["poem"]}, - "water/": {title: "מים", alt: "Water", author: "arikweiss", kw: [1, "2d 3d", "visual"], skip: true}, + "kadish/": {title: "קדיש", alt: "Kadish", author: "omridanino", kw: [1, "interactive", "poem", "visual"], skip: true}, + "water/": {title: "מים", alt: "Water", author: "arikweiss", kw: [1, "2d 3d", "interactive", "visual"], skip: true}, "talismetta/": {title: "טליס־מטא", alt: "Talis-Metta", author: ["neorashem", "nimrodkerrett"], kw: [1, "software", "visual"]}, "snark/": {title: "כרחש אבמ\"ח וכרחש אדו\"ש", alt: "ABMḤ snark and ADWŠ", author: "eyalgruss", kw: [1, "2d 3d", "combinatorial", "interactive", "new constraint", "pangram", "software", "sound", "visual"]}, @@ -92,6 +93,10 @@ const authors = { "noashaham": { "name": {"": "נעה שחם", "en": "Noa Shaham"}, }, + "omridanino": { + "name": {"": "עומרי דנינו", "en": "Omri Danino"}, + "instagram": 'daninomri', + }, "rotematar": { "name": {"": "רותם עטר", "en": "Rotem Atar"}, }, diff --git a/resen/talismetta/index.html b/resen/talismetta/index.html index 043d19b..f974143 100644 --- a/resen/talismetta/index.html +++ b/resen/talismetta/index.html @@ -29,7 +29,7 @@ רקמה: אינתיסאר (אום ראני) בורנאט

- עיצוב טקסט מורפינג: מירה עוואד + עיצוב טקסט מורפינג: מירה עווד

סרטון: גלעד קוריסקי diff --git a/resen/water/index.html b/resen/water/index.html index 1643466..edc5906 100644 --- a/resen/water/index.html +++ b/resen/water/index.html @@ -40,7 +40,7 @@ מקבץ היצירות הם חלק מסדרת עבודות בטכניקות שונות של האומן אריק וייס המביאות את סיפור קוד "המים". -"בְּרֵאשִׁית בָּרָא אֱלֹהִים אֵת הַשָּׁמַיִם וְאֵת הָאָרֶץ. וְהָאָרֶץ הָיְתָה תֹהוּ וָבֹהוּ, וְחֹשֶׁךְ עַל־פְּנֵי תְהוֹם, וְרוּחַ אֱלֹהִים מְרַחֶפֶת עַל־פְּנֵי הַמָּיִם." (בראשית א; א) +"בְּרֵאשִׁית בָּרָא אֱלֹהִים אֵת הַשָּׁמַיִם וְאֵת הָאָרֶץ. וְהָאָרֶץ הָיְתָה תֹהוּ וָבֹהוּ, וְחֹשֶׁךְ עַל־פְּנֵי תְהוֹם, וְרוּחַ אֱלֹהִים מְרַחֶפֶת עַל־פְּנֵי הַמָּיִם" (בראשית א א)

diff --git a/resen/water/media/group.glb b/resen/water/media/group.glb index 068a16a..f2c5056 100644 Binary files a/resen/water/media/group.glb and b/resen/water/media/group.glb differ diff --git a/resen/water/style.css b/resen/water/style.css index 8a995ec..0100c6b 100644 --- a/resen/water/style.css +++ b/resen/water/style.css @@ -4,7 +4,7 @@ article > * { } .model_container { - direction: ltr; /* Due to: https://github.com/google/model-viewer/issues/4930 */ + direction: ltr; /* Fix for: https://github.com/google/model-viewer/issues/4930 */ display: flex; justify-content: center; margin-inline: auto; @@ -13,6 +13,7 @@ article > * { model-viewer { aspect-ratio: 1; + clip-path: inset(1px); /* Partial fix for: https://github.com/google/model-viewer/discussions/4935 */ height: auto; min-height: 0; } \ No newline at end of file