Nas últimas décadas, a Internet mudou fundamentalmente o mundo e desencadeou uma enorme transformação na forma como consumimos e compartilhamos informações. A transformação é tão completa que, hoje em dia, uma presença de qualidade na web é vital para quase todas as empresas, e interagir com a web é fundamental para o funcionamento eficaz no mundo moderno.
A web evoluiu de documentos estáticos para aplicações dinâmicas envolvendo mídia interativa rica. No entanto, apesar do fato de vivermos em um mundo 3D, a web permanece predominantemente bidimensional.
Agora nos encontramos no limiar do próximo grande avanço da web: o advento da Internet 3D ou metaverso. Em vez de vincular páginas 2D, o metaverso vinculará mundos virtuais. Os sites se tornarão espaços 3D interconectados, semelhantes ao mundo em que vivemos e experimentamos todos os dias.
Muitos desses mundos virtuais serão gêmeos digitais refletindo o mundo real, conectados e sincronizados em tempo real. Outros serão projetados para entretenimento, socialização, games, aprendizado, colaboração ou comércio.
Não importa qual seja o propósito de qualquer site individual, o que fará de todo o metaverso um sucesso será a mesma coisa que tornou a web 2D tão bem-sucedida: interoperabilidade universal baseada em padrões e protocolos abertos.
O padrão mais fundamental necessário para criar o metaverso é a descrição de um mundo virtual. Na NVIDIA, acreditamos que a primeira versão desse padrão já existe. É a Universal Scene Description (USD), um ecossistema aberto e extensível para descrever, compor, simular e colaborar em mundos 3D, originalmente inventado pela Pixar Animation Studios.
De código aberto em 2015, o USD agora está sendo usado em uma ampla gama de setores, não apenas em mídia e entretenimento, mas também em arquitetura, engenharia, design, manufatura, varejo, computação científica e robótica, entre outros.
USD É Mais Do Que Um Formato de Arquivo
USD é uma descrição de cena: um conjunto de estruturas de dados e APIs para criar, representar e modificar mundos virtuais. A representação é rica. Ele suporta não apenas os fundamentos de mundos virtuais como geometria, câmeras, luzes e materiais, mas também uma ampla variedade de relacionamentos entre eles, incluindo herança de propriedade, instanciação e especialização.
Ele inclui recursos necessários para dimensionar grandes conjuntos de dados, como carregamento lento e recuperação eficiente de dados com amostragem de tempo. É extremamente extensível, permitindo que os usuários personalizem esquemas de dados, formatos de entrada e saída e métodos para localizar ativos. Em suma, o USD cobre a ampla gama de requisitos que a Pixar considerou necessários para fazer seus longas-metragens.
As camadas são provavelmente o recurso mais inovador do USD. Conceitualmente, eles têm algumas semelhanças com as camadas do Adobe Photoshop: a composição final é o resultado da combinação dos efeitos de todas as camadas em ordem. Mas, em vez de modificar os pixels de uma imagem como as camadas do Photoshop, as camadas do USD modificam as propriedades da cena composta. Mais importante ainda, eles fornecem um poderoso mecanismo de colaboração.
Diferentes usuários podem modificar a cena composta em diferentes camadas e suas edições não serão destrutivas. A camada mais forte vencerá na composição, mas os dados da camada mais fraca permanecerão acessíveis. Além da colaboração direta, a capacidade que as camadas fornecem para modificar de forma não destrutiva o que os outros fizeram permite o tipo de capacidade de composição que tornou a Web tradicional tão bem-sucedida.
A NVIDIA acredita que o USD deve servir como o HTML do metaverso: a especificação declarativa do conteúdo de um site. Mas assim como o HTML evoluiu dos limitados documentos estáticos do HTML 1 para as aplicações dinâmicas do HTML 5, está claro que o USD precisará evoluir para atender às necessidades do metaverso. Para acelerar essa evolução, a NVIDIA já fez várias adições ao ecossistema USD:
- Suporte ao Python 3: atualização de Python 2.7
- Adicionando usd-core ao PyPI: permitindo facilmente instalação do núcleo USD para programadores Python
- Suporte a materiais MDL (Material Definition Language): Habilitando materiais MDL fisicamente precisos no ecossistema USD
- Esquema para simulação de dinâmica de corpo rígido (com Pixar e Apple): padronização da representação de distribuição de massa, comportamento de colisão e outros dados necessários para dinâmica de corpo rígido
No curto prazo, a NVIDIA está desenvolvendo:
- Interoperabilidade glTF: Um plug-in de formato de arquivo glTF permitirá que ativos glTF sejam referenciados diretamente por cenas USD. Isso significa que os usuários que já usam o glTF podem aproveitar os recursos de composição e colaboração do USD sem precisar alterar seus ativos existentes.
- Esquema geoespacial (WGS84): a NVIDIA está desenvolvendo um esquema geoespacial e um comportamento de tempo de execução em USD para oferecer suporte ao padrão WGS84 para coordenadas geoespaciais. Isso facilitará modelos de gêmeos digitais de fidelidade total que precisam incorporar a curvatura da superfície da Terra.
- Suporte a caracteres internacionais (UTF-8): a NVIDIA está trabalhando com a Pixar para adicionar suporte a identificadores UTF-8 para USD, permitindo o intercâmbio total de conteúdo de todo o mundo.
- Conjunto de teste e certificação de compatibilidade com USD: para acelerar ainda mais o desenvolvimento e a adoção do USD, a NVIDIA está criando um conjunto de código aberto para testes e certificação de compatibilidade com USD. Os desenvolvedores poderão testar suas compilações de USD e certificar que seus componentes personalizados em USD produzem um resultado esperado.
A longo prazo, a NVIDIA está trabalhando com parceiros para preencher algumas das maiores lacunas restantes em USD:
- Atualizações incrementais de alta velocidade: o USD não foi projetado para atualizações de cenas dinâmicas de alta velocidade, mas as simulações de gêmeos digitais exigirão isso. A NVIDIA está desenvolvendo bibliotecas adicionais além do USD que permitem taxas de atualização muito mais altas para dar suporte à simulação em tempo real.
- Processualismo em tempo real: o USD como existe atualmente é quase totalmente declarativo. Propriedades e valores na representação em USD, em sua maioria, descrevem fatos sobre o mundo virtual. A NVIDIA começou a aumentar isso com um mecanismo de execução baseado em gráfico processual chamado OmniGraph.
- Compatibilidade com navegadores: hoje, o USD é baseado em C++/Python, mas os navegadores da web não. Para serem acessíveis a todos, em qualquer lugar, os mundos virtuais precisarão ser capazes de rodar dentro de navegadores da web. A NVIDIA trabalhará para garantir que as compilações adequadas do WebAssembly com ligações JavaScript estejam disponíveis para tornar o USD uma opção de desenvolvimento atraente quando a execução dentro de um navegador for a melhor abordagem.
- Streaming em tempo real de dados de IoT: mundos virtuais industriais e gêmeos digitais ao vivo exigem streaming em tempo real de dados de IoT. A NVIDIA está trabalhando na construção de conexões USD para protocolos de streaming de dados IoT.
Empresas do setor industrial e de manufatura, incluindo Ericsson, Kroger e Volvo, estão adotando o USD para habilitar seus mundos virtuais 3D e projetos de ativos.
Comece a Construir Mundos Virtuais com USD
NVIDIA Omniverse é uma plataforma de computação escalável para fluxos de trabalho de simulação 3D com fidelidade total ao design e um kit de ferramentas para criar aplicações de metaverso baseadas em USD. O Omniverse foi construído desde o início como um mecanismo USD e um kit de ferramentas aberto para criar pipelines 3D personalizados e interoperáveis.
Você pode acessar diversos recursos em USD da NVIDIA, disponíveis on-line gratuitamente. Um bom lugar para começar é com o hub de recursos em USD da NVIDIA. Para aprender os fundamentos do USD com exemplos em USDA e Python em um tutorial passo a passo na Web, inscreva-se no curso USD do DLI.
Experimentar o USD é fácil com binários USD pré-compilados. Essas distribuições do Windows/Linux ajudarão você a começar a desenvolver ferramentas que tiram proveito do USD ou começar a usar o USDView do Omniverse Launcher. Para desenvolvedores Python, a maneira mais fácil de começar a ler e escrever camadas em USD é com o pacote usd-core Python.
Se você estiver procurando dados de amostra em USD, várias cenas de amostra em USD estão disponíveis, incluindo uma amostra de minigame de bolinhas de gude baseada em física e uma cena de sótão com materiais MDL renderizados no Omniverse. Além disso, o USD SimReady Content inclui modelos de componentes de vários setores preparados para fluxos de trabalho de simulação.
Saiba mais no Omniverse Resource Center, que detalha como os desenvolvedores podem criar aplicações personalizadas baseadas em USD e extensões para a plataforma.
Siga Omniverse no Instagram, Twitter, YouTube e Medium para recursos adicionais e inspiração. Confira os fóruns do Omniverse e junte-se ao nosso Discord Server e Twitch para conversar com a comunidade.