;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Yas, queen! Agora chegou a vez das drag queens invadirem o metaverso

Blu Hydrangea, Tia Kofi e Adam All: roupas "turbinadas" pela realidade aumentada - Meta/PA Media
Blu Hydrangea, Tia Kofi e Adam All: roupas "turbinadas" pela realidade aumentada Imagem: Meta/PA Media

Nicole D'Almeida

Colaboração para Tilt

15/09/2022 15h49

Vestindo um look azul etéreo inspirado em divindades aquáticas, a drag queen Blu Hydrangea causou surpresa em um evento recente na galeria de arte 180 The Strand, em Londres. Ela está acostumada com os aplausos: foi a grande vencedora do reality show RuPaul's Drag Race UK vs. the World, um fenômeno mundial.

Mas havia uma diferença importante. O desfile não aconteceu apenas em uma arela comum. Quando observada por meio de um celular ou tablet com realidade aumentada, sua roupa ganhava tentáculos com uma fluidez impossível na vida real.

O show Queens of the Metaverse ("Rainhas do Metaverso") usou realidade mista para mostrar que, por mais criativas que as drags e seus estilistas já sejam, elas podem ser ainda mais exuberantes nas possibilidades infinitas da moda digital.

Blu dividiu os holofotes com Tia Kofi, cantora pop e estrela da segunda temporada de RuPaul's Drag Race UK, e Adam All, um drag king de renome mundial. Na plateia, outras drag queens britânicas e vários criadores digitais LGBTQIA+.

Mas o mais curioso é que os figurinos que elas usaram foram criados primeiro no mundo virtual (o Horizon Workrooms, um dos espaços de metaverso criados pela Meta) e depois transformado em roupas físicas.

Os looks

O drag king Adam All - Meta/PA Media - Meta/PA Media
O drag king Adam All
Imagem: Meta/PA Media

Cada designer recebeu um desafio. Christie Lau, estudante não-binária da Central Saint Martins focada em moda digital, precisou criar um "Superterno do Supeverso" (em tradução livre) para Adam.

Segundo o site Mashable, Lau estudou as performances do artista com o objetivo de transmitir sua performance de palco "incrivelmente animada" para a roupa. Lau também se inspirou em desenhos clássicos como Looney Tunes, extraindo padrões art deco, estampas e cores para completar o visual.

"Podemos projetar coisas sem a física do mundo real", disse ao Mashable. "Você está criando seu próprio mundo no qual seu design existe. Isso é incrivelmente poderoso".

Drag queen Blu Hydrangea, no evento Queens of the Metaverse - Meta/PA Media - Meta/PA Media
A drag queen Blu Hydrangea
Imagem: Meta/PA Media

Nwora Emenike, estilista queer também não-binária, ficou responsável pelo modelo de Blu Hydrangea. O tema era "Paisagem Onírica de Fantasia". Além das deidades aquáticas, elu também se inspirou em no mercúrio líquido (único metal encontrado líquido em seu estado natural) e na música Water, da cantora Kehlani.

"A conexão [entre o mundo drag e a tecnologia] é a inovação. Drag ultraa os limites e muda as percepções do que você acha que é possível com a identidade humana", afirmou. "Com ambos, você pode transformar a identidade e criar uma fantasia".

Tia Kofi, no evento Queens of the Metaverse - Meta/PA Media - Meta/PA Media
A drag queen Tia Kofi
Imagem: Meta/PA Media

Sal Mohammed, drag queen de gênero fluído, foi a única pessoa convidada que não era designer por profissão: elu trabalha no sistema de saúde público britânico. No entanto, criou um vestido com o tema "Deusa Intergaláctica" para Kofi. As recentes fotos tirada pelo telescópio James Webb, da Nasa, foram algumas de suas referências.

"Embora esteja claro que o metaverso está em seus estágios iniciais, fiquei impressionada em ver como talentos criativos, designers e técnicos queer estão trazendo seu poder de estrela para o desenvolvimento ddessa tecnologia", disse Kofi em seu artigo para o jornal britânico The Independent.

Veja o vídeo do evento: