创世纪物理引擎:设置创世纪的分步指南
去年,Genesis是一种令人兴奋的新工具,用于创建现实的物理模拟,Interactive 4D Worlds等。我渴望尝试,但是让它上班并不容易。我必须承认,在设置过程中,我面临很多挑战。
>在本教程中,我将简要分享我遇到的问题,并展示我最终如何使用Google Colab和几个技巧来运行它。
如果您只想概述Genesis,请查看我以前的文章《 Genesis Physics Engine:一个带有示例的指南》。
我最初的创世纪的设置经验
>当我刚开始使用Genesis时,我遵循文档中的安装步骤。马上,我遇到了依赖性问题。 Genesis需要一个名为Taichi(1.7.x)的模块的特定版本,但我的MacOS不支持它。作为参考,我的Mac已8岁…。
> 经过一番研究,我意识到,即使使用更好的计算机,其他用户也遇到了相同的问题。经过数小时的努力,发现Genesis仅适用于某些Python版本,我终于安装了它。>但新问题弹出了。它不会渲染任何东西,我在OpenGL上遇到了几个问题。即使我尝试从他们的github运行示例文件时,我也面临更多的错误和冲突。
> 然后,当我以为我已经整理出来时,我开始遇到诸如“统一找不到”之类的错误,这意味着某些渲染设置缺失了。> 在此过程中,我在网上进行了研究,以查看其他人是否遇到了同样的问题。事实证明,我不是唯一的人 - 许多人面临着同样的困难,许多人似乎找不到解决方案来使他们的脚本正常工作。
我如何使创世纪起作用:Google Colab进行救援最初的挫败感后,我决定尝试使用一个Pro帐户的Google Colab,事实证明这正是我所需要的。使用COLAB的GPU资源,我能够:
安装所有必需的依赖项,没有任何问题。
>使用GPU后端实现出色的性能和现实渲染。
最后,运行基本示例并探索创世纪的潜力。我选择了NVIDIA A100-SXM4-40GB,事实证明,它足够强大,可以有效地处理创世纪模拟。
- >设置了Google Colab环境并安装了Genesis,我尝试从文档中运行最简单的示例:
- 这个示例应使用CPU后端初始化创世纪并显示基本场景。但是,我立即遇到以下错误:
- >
>
>正如错误消息所建议的那样,我修改了代码以禁用查看器:
import genesis as gs gs.init(backend=gs.cpu) scene = gs.Scene(show_viewer=True)
>
在网上查看后,我发现其他人遇到了同样的问题。许多提出的解决方案涉及配置远程OpenGL环境或使用XVFB创建虚拟显示。不幸的是,我无法获得这些方法可以在COLAB中可靠地工作,这可能是由于依赖性冲突和环境的局限性。 在这一点上,我需要更实用的解决方法!>
>由于COLAB不是实时渲染,因此我决定按框架作为图像保存渲染的输出。有了这些想法,我能够生成一系列图像,这些图像后来可以合并为动画。>实现和输出
在本节中,我将引导您完成代码的实现和我获得的输出。设置GPU环境
首先,我安装了创世纪:
然后,我用CUDA后端初始化了GPU加速度的Genesis。
这是我得到的输出:>GenesisException: No display detected. Use show_viewer=False for headless mode.
创建和构建场景
scene = gs.Scene(show_viewer=False)
我需要的第一件事是一个文件夹,创世纪可以保存其呈现的图像。
pip install genesis-world
以这种方式,我有一个专门的位置来保存模拟中的所有帧和输出。
初始化场景
接下来,我需要创建一个可以添加对象并与它们进行交互的场景。
>import genesis as gs gs.init(backend=gs.cuda)
gs.scene()初始化了一个新的仿真空间,而show_viewer = false disable dis time实时可视化。在这一点上,我准备了一个空的场景来开始建造。
添加一个平面和一个盒子
>>准备好场景后,我开始添加对象。我首先添加了一架飞机,该飞机充当地面。
该平面是模拟的平坦基础。默认情况下,它是无限的,沿x-y轴平坦。
[Genesis] [INFO] Running on [NVIDIA A100-SXM4-40GB] with backend gs.cuda. Device memory: 39.56 GB. [Genesis] [INFO] ? Genesis initialized. Version: 0.2.1, Seed: None, Precision: 32.
接下来,我在场景中添加了一个盒子:
>我将盒子设置为(0、0、0),就在场景的中心,然后将其调整为0.5个单位宽,高且深,使其小于默认值。
现在,我有一个简单的设置:一架平面作为地面,一个放在其顶部的盒子。
import os save_dir = "/content/simulation_frames" os.makedirs(save_dir, exist_ok=True)
为了捕获场景中发生的事情,我添加了一个相机。
>
import genesis as gs gs.init(backend=gs.cpu) scene = gs.Scene(show_viewer=True)
>我将图像分辨率设置为320x240像素,这是测试的实用选择,并将相机定位在(3.5、2.0、2.5),从而使其从略微上方和侧面清晰地看到了场景。为了确保盒子保持在焦点中,我将相机的瞄准位于盒子中心的上方(0、0、0.5)。具有30度的视野(FOV),摄像机捕捉了场景的狭窄而专注的视角。
构建场景
下一步是构建场景以准备模拟和渲染。
>GenesisException: No display detected. Use show_viewer=False for headless mode.
此步骤至关重要,因为创世纪使用了即时(JIT)汇编来优化仿真。当我构建场景时,创世纪:
- >为场景中的对象分配内存。
- 准备用于渲染和物理计算的GPU内核。
- 设置所有必要的数据结构,以使模拟平稳运行。
>渲染和保存输出
为了可视化模拟,我呈现并逐帧保存了输出。每个帧都作为图像存储在Simulation_Frames目录中。在渲染过程中,我观察到前几个帧迅速呈现(最高2297 fps),但是随着模拟的进行,性能下降。 FPS最终按照帧25降至0.33 fps。这可能是由于模拟的计算复杂性增加或较大场景的GPU资源约束。
这是我得到的输出:
scene = gs.Scene(show_viewer=False)
这些是我得到的图像:
pip install genesis-world
>如通过相机所示,盒子如何随着时间的推移而与平面相关。模拟以步骤运行,每个步骤都会改变框的位置,使其看起来像框在移动。
这个示例强调了创世纪如何模拟和显示简单的物理相互作用。尽管此设置是基本的,但它很好地了解了对象在场景中的行为方式。但是,您可以通过创世纪完全创建更复杂和现实的场景!我们将在下一部分中探索其中的一些功能。>
探索创世纪:功能和功能
对象和场景创建
形状原语:
- gs.morphs.plane
- gs.morphs.box
- gs.morphs.cylinder
- gs.morphs.sphere
- mjcf:gs.morphs.mjcf for Mujoco XML机器人配置。
- urdf:gs.morphs.urdf for Unified机器人说明格式文件。
- 网格:gs.morphs.messss,用于3D资产,例如.obj,.ply,.stl,.glb和.gltf。
-
Genesis使用了一个称为“变形”的统一概念,封装了几何图形和姿势信息。这种面向对象的设计允许使用其方法直接与实体进行交互。 渲染和可视化
录制视频
>您可以通过让摄像头自动记录模拟的每个帧来创建视频。您甚至可以在录制过程中移动相机,以使视频更具动态性和沉浸式。 例如,您可以在捕获帧时配置相机以在场景周围的圆形路径中移动。 CAM.START_RECORDING()函数开始录制,在模拟的每个步骤中,相机的位置都会更新。捕获所有帧后,CAM.STOP_RECORDING()将视频保存为“ video.mp4”。
最终视频提供了模拟的平滑视图,显示了对象如何相互作用和随时间移动。运动任务的地形生成
>您还可以为机器人技术和AI培训创建不同类型的地形。您可以使用其内置的地形选项,或者通过使用gs.morphs.terrain提供自定义高度图来设计自己的地形。这些地形非常适合测试和训练机器人如何移动,使创世纪成为机器人研究的绝佳工具。
可扩展性>您还可以通过多种方式自定义模拟。您可以向对象添加逼真的纹理,从而使它们看起来更加栩栩如生。它还支持许多用于导入模型的文件格式,如果不支持格式,则可以要求将其添加。此外,您可以使用个性化文件和设置来创建自己的自定义对象形状(称为morphs)。
结论
本教程提供了一个简单的示例,可以帮助您开始创世纪。我们介绍了基础知识,例如创建场景,添加对象和渲染输出,以说明这种功能强大的物理引擎如何工作。 但是,这只是创世纪可以做的事情的开始。有了正确的硬件,例如强大的GPU和足够的内存,就有很多可能性。您可以将其用于复杂的机器人模拟或创建用于AI培训的高质量数据集。尽管设置它可能很棘手,但它绝对是一种具有巨大潜力的工具!
>以上是创世纪物理引擎:设置创世纪的分步指南的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Vibe编码通过让我们使用自然语言而不是无尽的代码行创建应用程序来重塑软件开发的世界。受Andrej Karpathy等有远见的人的启发,这种创新的方法使Dev

2025年2月,Generative AI又是一个改变游戏规则的月份,为我们带来了一些最令人期待的模型升级和开创性的新功能。从Xai的Grok 3和Anthropic的Claude 3.7十四行诗到Openai的G

Yolo(您只看一次)一直是领先的实时对象检测框架,每次迭代都在以前的版本上改善。最新版本Yolo V12引入了进步,可显着提高准确性

本文回顾了AI最高的艺术生成器,讨论了他们的功能,对创意项目的适用性和价值。它重点介绍了Midjourney是专业人士的最佳价值,并建议使用Dall-E 2进行高质量的可定制艺术。

Chatgpt 4当前可用并广泛使用,与诸如ChatGpt 3.5(例如ChatGpt 3.5)相比,在理解上下文和产生连贯的响应方面取得了重大改进。未来的发展可能包括更多个性化的间

本文讨论了AI模型超过Chatgpt,例如Lamda,Llama和Grok,突出了它们在准确性,理解和行业影响方面的优势。(159个字符)

MISTRAL OCR:通过多模式文档理解彻底改变检索效果 检索增强的生成(RAG)系统具有明显高级的AI功能,从而可以访问大量的数据存储,以获得更明智的响应

文章讨论了Grammarly,Jasper,Copy.ai,Writesonic和Rytr等AI最高的写作助手,重点介绍了其独特的内容创建功能。它认为Jasper在SEO优化方面表现出色,而AI工具有助于保持音调的组成
