GIBBON(几何和基于图像的生物工程附加组件)是一个开源 MATLAB 工具箱,包含一系列图像和几何可视化及处理工具,并与免费开源软件如 TetGen(用于稳健的四面体网格划分)和 FEBio(用于有限元分析)相连接。这种组合提供了一个高度灵活的基于图像的建模环境,并支持高级反向有限元分析。
GIBBON 提供图像滤波和平滑方法,并有用于 3D 图像分割的图形用户界面(HELP_imx.m
)。分割后的图像数据可以转换为 3D 表面模型(DEMO_imx_levelset_surface_compare
),然后可以进行网格划分用于有限元分析(HELP_runTetGen
)。
使用 GIBBON,可以从常见的基于网格的 CAD 文件(如 STL,HELP_import_STL
)导入几何。为了在 MATLAB® 内生成几何,GIBBON 还提供了几种 CAD 风格的命令,如多边形圆角(HELP_filletCurve
)、旋转(HELP_polyRevolve
)、拉伸(HELP_polyExtrude
)以及扫描和放样(HELP_polyLoftLinear
和 HELP_sweepLoft
)。简单的几何体,如球体(HELP_geoSphere
)、立方体 (HELP_quadBox
)、柏拉图立体(HELP_platonic_solid
)和菱形十二面体(HELP_rhombicDodecahedron
)也可以直接使用 GIBBON 创建。
2D 多区域三角形网格划分(如 HELP_regionTriMesh2D
和 HELP_multiRegionTriMeshUneven2D
),测地线重采样网格(DEMO_geodesic_remeshing
),平滑(DEMO_surface_smooth_methods
),和表面网格细化(如 HELP_subtri
、HELP_subTriDual
和 HELP_subQuad
),网格类型转换(如 HELP_tri2quad
、HELP_quad2tri
),以及网格对偶计算(HELP_patch_dual
)。几何体还可以导出为 STL 格式,用于计算机辅助制造和 3D 打印。
多区域域的四面体网格划分(和约束Delaunay剖分)通过与TetGen包的接口实现(HELP_runTetGen
和HELP_constrainedDelaunayTetGen
)。某些几何类型的六面体网格可以直接编码(例如球体HELP_hexMeshSphere
、立方体HELP_hexMeshBox
和晶格HELP_element2HexLattice
)。对于一般输入表面,还可以使用多区域混合四面体-六面体网格划分(例如DEMO_MixedTetHexMeshing
)。
生成晶格表面几何的一种方法是使用三周期函数(HELP_triplyPeriodicMinimal
)。还实现了将元素描述(如四面体和六面体元素)转换为晶格结构的函数(HELP_element2lattice
和HELP_element2HexLattice
)。这些允许在任意输入几何上创建3D边界适应晶格结构。还支持导出六面体元素,允许对创建的晶格结构进行有限元分析(DEMO_febio_0026_hexlattice_compression
)。
对于有限元分析,GIBBON目前可以链接免费开源软件FEBio或Simulia ABAQUS。FEBio和ABAQUS接口都基于MATLAB®结构。下图显示了在MATLAB®结构中编码材料部分(上排)以及这些组件在FEBio或ABAQUS输入文件中的表示(下排)。通过这种结构到输入文件的转换过程,任何FEBio或ABAQUS功能都可以直接在MATLAB®中编码。
<div> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/2f4c7049-4f9e-4727-9c38-e1974f64f2f4.jpg" width="100%"> </div>GIBBON可以用作FEBio的预处理和后处理工具,因为它能够基于代码开发网格、边界条件和输入文件。可以直接基于专用MATLAB®结构导出FEBio文件(HELP_febioStruct2xml
)。此外,GIBBON可用于启动和控制FEBio模拟。因此,也可以进行迭代和反向有限元分析(例如基于MATLAB®优化例程)。所有DEMO_febio_...
文件都是FEBio演示,例如DEMO_febio_0001_cube_uniaxial
是一个简单的单轴加载示例,而DEMO_febio_0042_inverse_FEA_cube_uniaxial
是反向有限元分析的示例。
下图展示了扭转杆的大变形分析,源自演示DEMO_febio_0004_beam_twist
。其他演示涵盖了拉伸、压缩、剪切、施加力、施加压力、施加位移、弯曲、孔弹性、动态和粘弹性分析、接触和压痕问题、用于预加载分析的多代材料。
GIBBON扩展了MATLAB®的标准可视化功能,增加了3D图像和体素可视化(HELP_im2patch
和HELP_sliceViewer
)、网格几何体(HELP_gpatch
和HELP_meshView
)、有限元模型(HELP_element2patch
)以及带颜色映射的矢量数据(HELP_quiverVec
)。所有可视化方法都允许在每个图形或坐标轴窗口中使用多个颜色映射。此外,GIBBON提供了自定义图形窗口cFigure
,包含模仿CAD行为的3D旋转选项(HELP_vcw
)和高质量图形导出选项(HELP_efw
)。还通过基于图形窗口的GUI实现了高级图形动画创建和导出功能(HELP_anim8
)。
installGibbon.m
(位于GIBBON的主文件夹中),并在安装过程中提供FEBio安装位置的链接以下步骤将指导您使用installGibbon.m
函数进行简化的安装过程<sup>*</sup>。
*<sub>如果您更喜欢手动安装,请执行以下操作:1) 将GIBBON文件夹(包括子文件夹)添加到路径并保存路径定义,2) 运行createHelpDemoDocumentation.m
以集成帮助和文档,3) 对于第三方软件包:进入_../GIBBON/config_的config文件夹,编辑_FEBioPath.txt_文件,使其包含FEBio可执行文件的完整路径</sub>
要使用GIBBON,您需要在本地目录中创建一个副本。您可以通过下载并解压最新的zip文件来获取副本,或者使用以下命令克隆GIBBON:git clone https://github.com/gibbonCode/GIBBON.git
。您可以将GIBBON文件夹放在计算机的任何位置,但是MATLAB(以及下面列出的第三方软件包)可能对某些位置有文件权限限制,您可能需要解决这些问题<sup>*</sup>。
<sup>* 例如,GIBBON的一些功能,如与TetGen和FEBio相关的功能,会定期创建和删除临时文件。因此,MATLAB(和第三方软件包)应对这些文件夹具有完全权限。首先,用户应确保MATLAB对整个GIBBON文件夹(及其子文件夹)具有完全(例如读/写/删除)权限。在某些平台上,第三方软件包可能需要特殊处理。例如,一些OSX用户发现有必要为tetGen或FEBio授予特定的文件权限。比如,对于TetGen相关功能,使用git update-index --chmod=+x path/to/tetgen
。</sup>
以下是完整功能所需的第三方软件包列表。除了FEBio之外,所有软件包都包含在GIBBON中,用户需要下载并安装FEBio。如果不需要有限元分析(使用FEBio),可以跳过FEBio的安装。
软件包 | 描述 | 是否包含? | 下载 |
---|---|---|---|
FEBio <br/> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/01abb6f8-763f-4678-8621-444361437396.png" href="https://febio.org" alt="FEBIO" width="100%"> | FEBio是一个有限元求解器,在GIBBON中用于所有有限元分析。FEBio的使用在许多DEMO_FEBio... 文件中有所展示。推荐使用FEBio 2.5.0或更新版本。 | 否 | FEBio网站 |
export_fig <br/> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/0325617d-3cd5-44db-974a-31b4409f5fe1.jpg" href="https://github.com/altmany/export_fig" alt="export_fig" width="100%"> | export_fig 有助于导出出版质量的图像(如.png、.jpg、.pdf、.eps),在GIBBON中,它被集成到导出图形小部件efw 中,可以直接从cFigure 窗口导出此类图像。export_fig 还用于导出图像以创建.gif动画,这可以通过GIBBON的anim8 函数实现。 | 是 | GitHub上的export_fig页面 |
TetGen <br/> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/db3d39d7-ff1e-4d0c-a1cd-e15dc093453c.gif" href="http://wias-berlin.de/software/tetgen/" alt="TetGen" width="100px"> | 用于四面体网格划分(可能还包括受约束的3D Delaunay剖分)。例如,请参见HELP_runTetGen.m 。 | 是 | 其他版本:TetGen网站 |
通过运行installGibbon.m
,GIBBON、FEBio和export_fig的路径定义将被添加并保存到MATLAB中。帮助和文档也将被集成。完成后,系统会要求您重新启动MATLAB。installGibbon.m
可以在GIBBON的主文件夹中找到。
gdoc
,这将在MATLAB的帮助浏览器中打开GIBBON文档页面。该文档可以搜索,并像MATLAB的其他帮助和文档一样集成。您也可以在"补充软件"下手动找到此页面,如下所示。gdoc <函数名>
(类似于MATLAB的doc
函数)。例如,要获取im2patch
的帮助,使用gdoc im2patch
。这将在集成帮助中搜索im2patch并显示结果。lib
文件夹包含所有GIBBON的函数。
lib_ext
文件夹包含由他人开发的外部函数和库。
docs
文件夹包含帮助和文档文件,以及演示文件,这些文件在"发布"时(使用MATLAB的发布功能)会创建.html文档文件(位于docs/html
中),这些文件被集成到MATLAB中。
任何函数functionName
的帮助信息源文件名为HELP_functionName
,演示的源文件名中包含DEMO_
。因此,如果对重现或从帮助和文档中的代码开始感兴趣,只需在MATLAB命令窗口中输入以HELP_
或DEMO_
开头的代码名称,例如,HELP_ind2patch
可用于生成ind2patch
函数的帮助信息。用户可以通过在命令窗口中输入open HELP_ind2patch
来开始编辑文件。通过发布(使用gpublish <HELP_functionName>
)HELP_或DEMO_文件,会在docs\html
文件夹中创建.html文件。因此,如果用户修改或贡献lib
文件夹中的代码并生成相关的HELP_
或DEMO_
文件,新的帮助和文档就会被添加并在网站上呈现。要使新的帮助和文档集成到MATLAB中,请运行createHelpDemoDocumentation
函数并重启MATLAB。
许多DEMO_
文件都集中于FEBio的使用。例如,DEMO_febio_0001_cube_uniaxial
演示了一个简单的立方体受单轴载荷的情况。其他演示则关注不同的载荷类型、单步与多步分析、不同材料和反向分析(例如DEMO_febio_0042_inverse_FEA_cube_uniaxial
)。
可以通过运行 testGibbon('all','test');
来测试 GIBBON 的核心功能。使用 testGibbon('demo','test');
或 testGibbon('help','test');
仅运行演示或帮助文件。
GIBBON 目前使用最新版本的 MATLAB(或最新预发布版)进行开发和测试,并已在 Windows 10、Ubuntu 20.04 和 Mac OS 上进行了测试。GIBBON 的大部分功能与旧版 MATLAB 兼容,特别是 MATLAB R2014a 及更新版本(Delaunay 剖分和工具箱帮助集成等功能已经发生了重大变化)。如果某个特定功能不适用于您的 MATLAB 环境,请告知开发人员(或提出问题)。代码很可能可以轻松修改以适用于您的版本。
GIBBON 的大部分功能不依赖于特殊的 MATLAB 工具箱。但是有些函数确实需要。以下是 GIBBON 中使用的工具箱列表:
GIBBON 的使用遵循以下许可:
。许可证文件可在 GitHub 存储库中找到。
Moerman, (2018). GIBBON: The Geometry and Image-Based Bioengineering add-On. Journal of Open Source Software, 3(22), 506, https://doi.org/10.21105/joss.00506
我们非常欢迎您为 GIBBON 做出贡献,甚至加入开发团队!我们欢迎各种形式的贡献,包括技术内容、文档开发或网站改进。请阅读我们的贡献指南。
您也可以通过 Gitter 聊天提出问题并了解更多关于贡献的信息:
请参阅 CODE_OF_CONDUCT
请参阅 ROADMAP
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
高分辨率纹理 3D 资产生成
Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。
一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。
3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。
用于可扩展和多功能 3D 生成的结构化 3D 潜在表示
TRELLIS 是一个专注于 3D 生成的项目,它利用结构化 3D 潜在表示 技术,实现了可扩展且多功能的 3D 生成。项目提供了多种 3D 生成的方法和工具,包括文本到 3D、图像到 3D 等,并且支持多种输出格式,如 3D 高斯、辐射场和网格等。通过 TRELLIS,用户可以根据文本描述或图像输入快速生成高质量的 3D 资产,适用于游戏开发、动画制作、虚拟现实等多个领域。
10 节课教你开启构建 AI 代理所需的一切知识
AI Agents for Beginners 是一个专为初学者打造的课程项目,提供 10 节课程,涵盖构建 AI 代理的必备知识,支持多种语言,包含规划设计、工具使用、多代理等丰富内容,助您快速入门 AI 代理领域。
AI Excel全自动制表工具
AEE 在线 AI 全自动 Excel 编辑器,提供智能录入、自动公式、数据整理、图表生成等功能,高效处理 Excel 任务,提升办公效率。支持自动高亮数据、批量计算、不规则数据录入,适用于企业、教育、金融等多场景。
基于 UI-TARS 视觉语言模型的桌面应用,可通过自然语言控制计算机进行多模态操作。
UI-TARS-desktop 是一款功能强大的桌面应用,基于 UI-TARS(视觉语言模型)构建。它具备自然语言控制、截图与视觉识别、精确的鼠标键盘控制等功能,支持跨平台使用(Windows/MacOS),能提供实时反馈和状态显示,且数据完全本地处理,保障隐私安全。该应用集成了多种大语言模型和搜索方式,还可进行文件系统操作。适用于需要智能交互和自动化任务的场景,如信息检索、文件管理等。其提供了详细的文档,包括快速启动、部署、贡献指南和 SDK 使用说明等,方便开发者使用和扩展。
开源且先进的大规模视频生成模型项目
Wan2.1 是一个开源且先进的大规模视频生成模型项目,支持文本到图像、文本到视频、图像到视频等多种生成任务。它具备丰富的配置选项,可调整分辨率、扩散步数等参数,还能对提示词进行增强。使用了多种先进技术和工具,在视频和图像生成领域具有广泛应用前景,适合研究人员和开发者使用。
全流程 AI 驱动的数据可视化工具,助力用户轻松创作高颜值图表
爱图表(aitubiao.com)就是AI图表,是由镝数科技推出的一款创新型智能数据可视化平台,专注于为用户提供便捷的图表生成、数据分析和报告撰写服务。爱图表是中国首个在图表场景接入DeepSeek的产品。通过接入前沿的DeepSeek系列AI模型,爱图表结合强大的数据处理能力与智能化功能,致力于帮助职场人士高效处理和表达数据,提升工作效率和报告质量。
一款强大的视觉语言模型,支持图像和视频输入
Qwen2.5-VL 是一款强大的视觉语言模型,支持图像和视频输入,可用于多种场景,如商品特点总结、图像文字识别等。项目提供了 OpenAI API 服务、Web UI 示例等部署方式,还包含了视觉处理工具,有助于开发者快速集成和使用,提升工作效率。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号