开源生成式物理引擎Genesis,可模拟世界万物
这是生成大模型时代 —— 它们能生成文本、图像、音频、视频、3D 对象…… 而如果将所有这些组合到一起,我们可能会得到一个世界!
现在,不管是 LeCun 正在探索的世界模型,还是李飞飞想要攻克的空间智能,又或是其他研究团队提出的其它类似概念,我们都毫无疑问地在离这个世界越来越近。
2024年12月24日,Genesis横空出世。
据项目贡献者 CMU 机器人研究所博士生 Zhou Xian 和领导者 Chuang Gan 教授在 X 上分享的内容看,该项目耗费了 2 年多时间,海内外近 20 家机构参与了内部测试,最终这个联合团队得到的 Genesis 生成式物理引擎可以生成 4D 动态世界,而其基础是一个用于通用机器人和物理 AI 应用的物理模拟平台。
Genesis,意为「创世纪」,从名字也能看出,这或许真是一个新世界的起点。
Genesis是什么?
Genesis是卡内基梅隆大学、马里兰大学、斯坦福大学、麻省理工学院等研究机构联合推出的开源生成式物理引擎,能模拟世界万物。
Genesis能用简单的语言描述,快速生成精确的物理模拟,包括物体运动、人物动作和机器人策略等。引擎的特点在于高度的物理准确性、快速的模拟速度(比现实世界快约43万倍),及用户友好的Python化设计。
Genesis能模拟各种材料和物理现象,提供一个轻量级、超快速的机器人仿真平台,及一个强大而快速的照片级写实渲染系统。
Genesis能将用户的自然语言描述转换为数据模式,用在生成式数据引擎。
Genesis为通用机器人、具身AI和物理AI应用而设计,预示着物理模拟和机器人技术领域的重大进步。
Genesis主要功能
- 物理模拟:模拟各种材料和物理现象,包括物体的运动、碰撞、流体动力学等。
- 机器人仿真:提供轻量级、超快速的机器人仿真平台,支持多种机器人类型,如机械臂、腿式机器人、无人机、软体机器人等。
- 照片级渲染:拥有强大而快速的照片级写实渲染系统,能生成高质量的视觉输出。
- 生成式数据引擎:将用户的自然语言描述转换为数据模式,用在生成模拟场景。
- 交互式3D场景:支持完全交互式的3D场景生成,包括家居室内场景、游戏环境等。
- 开放世界物体生成:能生成开放世界中的铰接式物体,提供高质量的mesh资产软体。
- 机器人模拟:针对软性机器人实现逼真的模拟,如虫、柔软的抓手等。
- 面部动画和语音同步:生成面部动作和表情,与语音同步,实现逼真的面部动画。
Genesis的技术原理
- 通用物理引擎:从头开始构建,集成各种物理求解器,如刚体、MPM(物质点方法)、SPH(光滑粒子流体动力学)、FEM(有限元方法)、PBD(位置基动力学)等,实现精确的物理拟。
- 生成Agent框架:在核心物理引擎之上运行,用在自动化数据生成,包括视频、摄像机运动、角色动作、机器人策略等。
- 可微分仿真:支持可微分仿真,让仿真过程与机器学习算法结合,用在训练和优化。
- 多模态集成:将物理模拟与视觉渲染、动作捕捉、语音合成等多模态技术集成,实现全面的模拟体验。
- 跨平台兼容性:设计为可在不同操作系统和计算后端(如CPU、Nvidia GPU、AMD GPU、Apple Metal)上运行。
Genesis应用场景
- 机器人仿真训练:模拟复杂环境,训练机器人在现实世界中执行任务。
- 游戏物理引擎:在游戏开发中,创建逼真的物理效果和角色动作。
- 电影特效制作:模拟逼真的物理破坏和动态效果,用在电影后期制作。
- 科学研究模拟:在物理学和工程学研究中,模拟实验和测试理论。
- 虚拟教学平台:在教育领域,创建虚拟实验室,辅助物理和科学教学。
当然,也能用于生成训练用的自动驾驶场景数据。
接下来,我们看看具体的示例展示。
生成4D动态物理世界
Genesis 物理引擎由基于 VLM 的生成式智能体提供支持,该智能体使用模拟基础设施提供的 API 作为工具来创建 4D 动态世界,然后将其用作提取各种模式数据的基础数据源。
结合生成相机和物体运动模块,Genesis 能够生成物理上精确且视图一致的视频和其他形式的数据。并且,Genesis 还支持模拟各种不同的材料,包括刚体、铰接体、布料、液体、烟雾、可变形体、薄壳材料、弹性 / 塑性体、机器人肌肉等。
模拟一层巧克力酱,自然不在话下。
绞碎泡沫的质感看起来也非常真实。
星球与太空船的质感也非常高,看起来就像是来自一部大制作的科幻电影。
子弹击破水球的物理过程就好像真的是来自设备精良的高速摄影。
一壶字母糖,看起来很 Q 弹。
对充气人偶的模拟也恰到好处,同样也非常幽默地模拟现实状况。
角色动作生成
有了如此高质量的物理引擎,对于游戏制作业来说也是好消息,许多复杂的动作和效果都可以通过提示词来快速生成了:
提示:手持棍棒的迷你版悟空在桌面上飞奔 3 秒,然后跳到空中,落地时右臂向下摆动。镜头从他的脸部特写开始,然后稳定地跟随角色,同时逐渐缩小。当悟空跳到空中时,在跳跃的最高点,动作暂停几秒钟。镜头围绕角色 360 度旋转,然后缓慢上升,然后继续动作。
设计动作的时间成本一下子就被打下来了。
机器人策略生成
Genesis 可以利用生成式机器人智能体和物理引擎自动生成不同场景下各种技能的机器人策略和演示数据。这意味着研究人员可以在仿真环境中快速获得符合物理规律的机器人动作方案,并将其可靠地迁移到实体机器人上。
下面展示了一些不同形态的机器人执行不同任务的示例。
提示:一个移动的 Franka 机械臂使用碗和微波炉做爆米花
提示:宇树 Go2 四足机器人在雨中奔跑 (Sim)
比如,从提示词到在仿真环境中的动作策略,再迁移到实体机器人上,可以如此丝滑:
提示:宇树 H1-2 人形机器人向前行走 (Sim2Real)
做倒立需要精确平衡控制和全身协调,这么高难度的动作,现在也可以通过 Genesis 来实现 Sim2Real:
提示:四足机器人用前两条腿做倒立 (Sim2Real)
倒立不够,在 Genesis 的助力下,机器狗还能更快地学会「体操技巧」,稳稳地做两个直体后空翻:
四足机器人连着后空翻两次 (Sim2Real)
像拉椅子这样要和真实世界里的物体交互的动作,也没问题:
大型欠驱动机器人的运动操作 (Sim2Real)
3D完全交互式场景生成
Genesis 的生成框架支持生成 3D 和完全交互的场景,这些场景可用于训练机器人技能。
家庭室内场景,有客厅(包括用餐区)、卫生间、书房和卧室。
餐厅内部
开放世界铰接物体生成
Genesis 也能生成具有铰接结构的物体及其交互过程,例如汽车开关门、打开合上笔记本电脑、折叠金属刀片。
软体机器人
Genesis 还是首个为软肌肉和软机器人及其与刚性机器人的交互提供全面支持的平台。Genesis 还附带类似 URDF 的软机器人配置系统。官方还提供了一个相关教程:https://genesis-world.readthedocs.io/en/latest/user_guide/getting_started/soft_robots.html
Genesis 也能模拟带有软皮肤和刚性骨骼的混合机器人。
语音音频,面部表情和情绪生成
音频以及面部表情也是 Genesis 想要整合的模态,下面展示了两个示例:
人物情绪从中性转变为愤怒,然后再转变为快乐。
Genesis 将情绪的转变泛化到不同的面部
结语
最后,Zhou Xian 展示了一个用 Genesis 打造的俄罗斯方块游戏,其中的方块是果冻材质的,并且能以符合现实的物理规律运动。
我们以前可能也刷到过类似的视频,但那些是视频特效师们精心制作的结果,而现在 Genesis 已经可以一键导出,并进一步转化为真实可实现的技术突破。
淦创教授在 X 上分享了自己参与这个项目的经历:自 2018 年以来,我决定将自己的研究重点从视觉转向具身 AI,因为我着迷于创建能够与物理世界和其他具有类似人类灵活性的智能存在交互的通用智能体——我们将这个领域称为具身 AGI(embodied AGI)。
他还写到:「说实话,有时候我觉得这个模拟器可能太先进了,不能发布,但我们相信让它完全开源并围绕我们的使命建立一个强大的社区是至关重要的!请加入 Genesis 社区!我们希望让机器人学研究社区相信『Generative Physics Simulator is all You Need』
Genesis项目地址
项目官网:Genesishttps://genesis-embodied-ai.github.io/?utm_source=ai-bot.cn
GitHub仓库:GitHub - Genesis-Embodied-AI/Genesis: A generative world for general-purpose robotics & embodied AI learning.A generative world for general-purpose robotics & embodied AI learning. - Genesis-Embodied-AI/Genesishttps://github.com/Genesis-Embodied-AI/Genesis
相关文章:
开源生成式物理引擎Genesis,可模拟世界万物
这是生成大模型时代 —— 它们能生成文本、图像、音频、视频、3D 对象…… 而如果将所有这些组合到一起,我们可能会得到一个世界! 现在,不管是 LeCun 正在探索的世界模型,还是李飞飞想要攻克的空间智能,又或是其他研究…...
Apache Paimon-实时数据湖
一、Apache Paimon是什么? Flink社区希望能够将 Flink 的 Streaming 实时计算能力和 Lakehouse 新架构优势进一步结合,推出新一代的 Streaming Lakehouse 技术,促进数据在数据湖上真正实时流动起来,并为用户提供实时离线一体化的开发体验。 …...
Git:Cherry-Pick 的使用场景及使用流程
前面我们说了 Git合并、解决冲突、强行回退等解决方案 >> 点击查看 这里再说一下 Cherry-Pick功能,Cherry-Pick不是merge,只是把部分功能代码Cherry-Pick到远程的目标分支 git cherry-pick功能简介: git cherry-pick 是用来从一个分…...
蓝桥杯---纯职业小组(c语言)
问题描述 在蓝桥王国,国王统治着一支由n 个小队组成的强大军队。每个小队都由相同职业的士兵组成。具体地,第i 个小队包含了 bi名职业为ai的士兵。近日,国王计划在王宫广场举行一场盛大的士兵检阅仪式,以庆祝王国的繁荣昌盛。然而…...
先辑芯片HPM5300系列之SEI多摩川协议命令表问题研究
多摩川协议有9条命令,但是先辑SEI的命令表只有8张。0-6是可用的,第7张是黑洞表,所以只有7张可用。 命令表的限制颇多,比如命令表只能按顺序使用 :例如0、1、3,那么命令表3是不能用的。 如果想要实现9个命令…...
C++:string
一、string概念 之前介绍过通过字符数组保存字符串,然后对字符数组中的字符串做各种操作;为了更加简单方便,在C中,又增加了 string 来处理字符串。 char str[20] "hello world"; string 字符串其实是一种更加高级的封…...
用c实现C++类(八股)
在 C 语言中,虽然没有内建的面向对象编程(OOP)特性(如封装、继承、多态),但通过一些编程技巧,我们仍然可以模拟实现这些概念。下面将用通俗易懂的方式,逐步介绍如何在 C 中实现封装、…...
一区10+!线粒体基因组+宏基因组,微生态研究跨界新组合
在自然界中,微生物与宿主之间的共生关系是生物多样性和生态系统功能的重要组成部分。这些相互作用不仅塑造了宿主的进化历程,而且对宿主的生存和适应性至关重要。然而,这些共生关系的进化动态和共生菌基因组的演变仍然是微生物生态学和进化生…...
基于Python编程语言的自动化渗透测试工具
摘 要 近些年来网络安全形势变得越来越严峻,全球数百万个政企遭遇过不同程度的网络攻击。渗透测试是一种对目标进行信息安全评估的方法,而目前该行业仍在存在着安全服务行业价格昂贵,安全人才缺口巨大,在渗透测试时步骤繁琐、效率…...
浅析大语言模型安全和隐私保护国内外标准和政策
过去两年,大模型技术已经普及并逐步渗透到各行各业,2025年注定是大模型应用井喷式发展的一年,AI在快速发展的同时,其带来的安全风险也逐渐凸显。人工智能系统的安全性和隐私保护已经成为社会关注的重点。 附下载:600多…...
C++例程:使用I/O模拟IIC接口(6)
完整的STM32F405代码工程I2C驱动源代码跟踪 一)myiic.c #include "myiic.h" #include "delay.h" #include "stm32f4xx_rcc.h" //初始化IIC void IIC_Init(void) { GPIO_InitTypeDef GPIO_InitStructure;RCC_AHB1PeriphCl…...
【YOLOv8杂草作物目标检测】
YOLOv8杂草目标检测 算法介绍模型和数据集下载 算法介绍 YOLOv8在禾本科杂草目标检测方面有显著的应用和效果。以下是一些关键信息的总结: 农作物幼苗与杂草检测系统:基于YOLOv8深度学习框架,通过2822张图片训练了一个目标检测模型ÿ…...
Mysql--基础篇--SQL(DDL,DML,窗口函数,CET,视图,存储过程,触发器等)
SQL(Structured Query Language,结构化查询语言)是用于管理和操作关系型数据库的标准语言。它允许用户定义、查询、更新和管理数据库中的数据。SQL是一种声明性语言,用户只需要指定想要执行的操作,而不需要详细说明如何…...
[Transformer] The Structure of GPT, Generative Pretrained Transformer
The Structure of Generative Pretrained Transformer Reference: The Transformer architecture of GPT models How GPT Models Work...
【教程】Unity 本地化多语种 | Localization 工具组
开发平台:Unity 6.0 编程平台:Visual Studio 2022 编程语言:CSharp 6.0 工具包类:Localization 一、前言 本地化多语言类型是软件面向国际化所必须的功能项。Unity 在 2022 版本后推出 Localization 工具包,以降低…...
模式识别与机器学习
文章目录 考试题型零、简介1.自学内容(1)机器学习(2)机器学习和统计学中常见的流程(3)导数 vs 梯度(4)KL散度(5)凸优化问题 2.基本概念3.典型的机器学习系统4.前沿研究方向举例 一、逻辑回归1.线性回归2.逻辑回归3.随堂练习 二、贝叶斯学习基础1.贝叶斯公式2.贝叶斯决策3.分类器…...
鸿蒙面试 2025-01-10
写了鉴权工具,你在项目中申请了那些权限?(常用权限) 位置权限 : ohos.permission.LOCATION_IN_BACKGROUND:允许应用在后台访问位置信息。 ohos.permission.LOCATION:允许应用访问精确的位置信息…...
在vscode上
第一步 安装插件 (1)从菜单处打开vscode,之后点击左侧“拓展”,在搜索栏输入“platform”,安装这个插件。 注:安装过程可能会慢一点,可以尝试连接自己的热点 (2)安装完…...
用WebGPU实现现代Web3D渲染——突破传统性能瓶颈的解决方案
引言 随着Web技术的不断发展,Web3D应用的需求不断增加。从游戏引擎到可视化工具,3D渲染技术正在被广泛地应用。然而,传统WebGL技术在性能、效率和灵活性上仍存在局限性。而WebGPU作为一种新兴的Web标准,为现代3D渲染提供了强大而…...
HTML5 加载动画(Loading Animation)
加载动画(Loading Animation)详解 概述 加载动画是指在数据加载过程中,向用户展示的一种视觉效果,旨在提升用户体验,告知用户系统正在处理请求。它可以减少用户的等待焦虑感,提高界面的互动性。 常见的加…...
.NET AI 开发人员库 --AI Dev Gallery简单示例--问答机器人
资源及介绍接上篇 nuget引用以下组件 效果展示: 内存和cpu占有: 代码如下:路径换成自己的模型路径 模型请从上篇文尾下载 internal class Program{private static CancellationTokenSource? cts;private static IChatClient? model;privat…...
Linux 高级路由 —— 筑梦之路
Linux 高级路由详解 本文将基于您提供的 Linux 高级路由极简教程 文章,深入探讨 Linux 高级路由的概念、配置方法以及应用场景。 一、什么是 Linux 高级路由? Linux 高级路由是指利用 Linux 内核提供的强大网络功能,实现超越传统路由表和默…...
实习总结(经历篇)
自从读研后,有可能是看见同龄的财会专业的同学去各种大厂实习:B站,阿里等,身边也有舍友在有过小厂实习,所以一直有个想法就是去实习,这个想法终于在研一的暑假快开始前被我赋予行动。 研一暑假和同门一起在boss等招聘软件投简历,但是当时并没有很好的对简历做修改,投递…...
【ShuQiHere】pandas 与 DataFrame 全面详解
【ShuQiHere】 本文将为您系统介绍 pandas 与 DataFrame 之间的区别,着重讲解 DataFrame 的常用方法以及相关的数据可视化操作,包括 df.hist()、df.plot()、df.boxplot() 等。无论您是数据分析新手还是有经验的专业人士,都可以从本文中快速掌…...
【回眸】发财日记
积累本金,有舍有得。 上学时在线上兼职,基本够开销没攒下钱,上班之后工资还能攒下不少。 对于花销要有舍有得。认同一句话“买东西要买能力范围内最好的”。 所以,每次花钱前都会思考: 是否需要,是否能替代已有产品&…...
文件读写到SQLite数据库的方法
在 SQLite 数据库中,将文件读写到数据库的常见方法主要有以下几种: 1. 将文件以 BLOB 类型存储 BLOB(Binary Large Object) 是 SQLite 中的二进制数据类型,可以直接用来存储文件内容。 步骤: 创建表 创建一…...
基于SDN的ddos攻击检测与防御
本项目依赖mininet, floodlight, sFlow-RT 1,启动floodlight cd floodlightjava -jar target/floodlight.jar 浏览器访问http://localhost:8080/ui/pages/index.html 或者http://localhost:8080/ui/index.html 2,创建 mininet拓扑 sudo mn --toposingl…...
RocketMQ 和 Kafka 有什么区别?
目录 RocketMQ 是什么? RocketMQ 和 Kafka 的区别 在架构上做减法 简化协调节点 简化分区 Kafka 的底层存储 RocketMQ 的底层存储 简化备份模型 在功能上做加法 消息过滤 支持事务 加入延时队列 加入死信队列 消息回溯 总结 来源:面试官:RocketMQ 和 Kafka 有…...
关于人工智能学习框架
人工智能学习框架:智能时代的强大引擎 在人工智能蓬勃发展的今天,学习框架如同一座座坚实的桥梁,连接着理论与实践,承载着创新与突破,为智能科技的前行提供了强大动力。本文将深入剖析人工智能学习框架的重要意义、核…...
Android14上使用libgpiod[gpioinfo gpioget gpioset ...]
环境 $ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.5 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.5 LTS" VERSION_ID="20.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="…...
【文件I/O】UNIX文件基础
IO编程的本质是通过 API 操作 文件。 什么是 IO I - Input 输入O - Output 输出 这里的输入和输出都是站在应用(运行中的程序)的角度。外部特指文件。 这里的文件是泛指,并不是只表示存在存盘中的常规文件。还有设备、套接字、管道、链接…...
TensorFlow Quantum快速编程(高级篇)
五、实战:量子分类器应用 5.1 数据准备 在实战构建量子分类器时,数据准备是基石环节。选用鸢尾花数据集,这一经典数据集在机器学习领域应用广泛,其涵盖了三种鸢尾花品种的样本,每个样本包含花萼长度、花萼宽度、花瓣长度、花瓣宽度四个特征。鉴于本次构建二分类量子分类…...
无人机+无人车:车机协同技术探索详解
无人机与无人车之间的协同技术是一种重要的研究方向,它结合了无人机的高空视野和无人车的地面移动能力,旨在实现更高效、灵活的作业。以下是对无人机与无人车车机协同技术的详细探索: 一、技术基础 1. 通信机制: 无人机与无人车…...
解决WordPress出现Fatal error: Uncaught TypeError: ftp_nlist()致命问题
错误背景 WordPress版本:wordpress-6.6.2-zh_CN WooCommerce版本:woocommerce.9.5.1 WordPress在安装了WooCommerce插件后,安装的过程中没有问题,在安装完成后提示: 此站点遇到了致命错误,请查看您站点管理…...
scrapy爬取图片
scrapy 爬取图片 环境准备 python3.10scrapy pillowpycharm 简要介绍scrapy Scrapy 是一个开源的 Python 爬虫框架,专为爬取网页数据和进行 Web 抓取而设计。它的主要特点包括: 高效的抓取性能:Scrapy 采用了异步机制,能够高效…...
【数据库】六、数据库设计
文章目录 六、数据库设计1 数据库设计步骤1.1 规划阶段1.2 需求分析1.3 概念设计阶段(重点)1.4 逻辑设计阶段(重点)1.5 物理设计阶段1.6 数据库的实现1.7 数据库运行与维护 2 概念模型设计2.1 ER模型2.1.1 ER模型的基本元素2.1.2 联系的设计2.1.3 采用ER模型的概念设计2.1.4 ER…...
错误的类文件: *** 类文件具有错误的版本 61.0, 应为 52.0 请删除该文件或确保该文件位于正确的类路径子目录中
一、问题 用maven对一个开源项目打包时,遇到了“错误的类文件: *** 类文件具有错误的版本 61.0, 应为 52.0 请删除该文件或确保该文件位于正确的类路径子目录中。”: 二、原因 原因是当前java环境是Java 8(版本52.0),但…...
不同音频振幅dBFS计算方法
1. 振幅的基本概念 振幅是描述音频信号强度的一个重要参数。它通常表示为信号的幅度值,幅度越大,声音听起来就越响。为了更好地理解和处理音频信号,通常会将振幅转换为分贝(dB)单位。分贝是一个对数单位,能…...
《探秘开源多模态神经网络模型:AI 新时代的万能钥匙》
《探秘开源多模态神经网络模型:AI 新时代的万能钥匙》 一、多模态模型的崛起之路(一)从单一到多元:模态的融合演进(二)关键技术突破:解锁多模态潜能 二、开源多模态模型深度剖析(一&…...
计算机网络之---端口与套接字
总括 端口:是计算机上用于标识网络服务的数字标识符,用于区分不同的服务或应用程序。套接字:是操作系统提供的用于进程间网络通信的编程接口,允许程序通过它来进行数据的发送、接收和连接管理。关系:端口号用于标识服…...
el-tabs中tabs过多造成form表单输入的时候卡顿
这里写自定义目录标题 tabs过多造成的输入卡顿解决方案方案一方案二 出现的并发问题解决方案 tabs过多造成的输入卡顿 描述:前端要写一个需求,大概有一百多个tab渲染过来,每个tab中都是一个表单,这个时候数据渲染任务加重&#x…...
vue+vite打包空白问题
在使用vuevite创建项目之后如果我们在部署项目的时候使用的不是主域名 比如www.custom.com 而是使用了www.custom.com/test 为访问域名的时候 如果不小心没有注意到这个变化 在打包上线之后会出现页面空白 js或者css404问题 我们可以在vite.config.ts去配置路径base export de…...
【python翻译软件V1.0】
如果不想使用密钥的形式,且需要一个直接可用的中英文翻译功能,可以使用一些免费的公共 API,如 opencc 或其他无需密钥的库,或直接用 requests 获取翻译结果。 其中,我可以给你一个简单的代码示例,使用 tra…...
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(while循环应用)
实战训练1—求最大公约数 问题描述: 给定两个正整数,求它们的最大公约数。 输入格式: 输入一行,包含两个正整数。 输出格式: 输出一行,包含gcd正整数,即这两个正整数的最大公约数。 输入…...
HTTPS协议的基础与工作原理
什么是HTTPS? HTTPS(HyperText Transfer Protocol Secure)是HTTP协议的安全版本,它通过SSL/TLS协议对通信数据进行加密,确保数据的安全传输。与HTTP相比,HTTPS能防止数据被窃取、篡改或伪造,广…...
手游业务该如何选择服务器?
在网络游戏行业当中,对于服务器配置的需求是非常高的,大型的网络游戏需要服务器的高稳定性,来保证用户的游戏体验感,那么对于手游业务来说该如何进行选择服务器呢? 手游业务通常都需要处理大量的用户数据信息和并发请求…...
Python 数据建模完整流程指南
在数据科学和机器学习中,建模是一个至关重要的过程。通过有效的数据建模,我们能够从原始数据中提取有用的洞察,并为预测或分类任务提供支持。在本篇博客中,我们将通过 Python 展示数据建模的完整流程,包括数据准备、建…...
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
今天在朋友机子上运行代码,在生成token的时候,遇到了这样一个问题: Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter at io.jsonwebtoken.impl.Base64Codec.decode(Base64Codec.java:26) ~[jjwt-0.9.1.jar:0.…...
12. C语言 数组与指针(深入理解)
本章目录: 前言1. 什么是数组?2. 数组的声明与初始化声明数组初始化数组 3. 访问数组元素遍历数组 4. 获取数组长度使用 sizeof 获取长度使用宏定义简化 5. 数组与指针数组名与指针的区别使用指针操作数组 6. 多维数组遍历多维数组 7. 数组作为函数参数8. 高级技巧与…...
C#用直线和曲线抗锯齿
使用 GDI 绘制一条线时,要提供线条的起点和终点,但不必提供有关线条上各个像素的任何信息。 GDI 与显示驱动程序软件协同工作,确定将打开哪些像素以在特定显示设备上显示该线条。 效果对比 代码实现 关键代码 e.Graphics.SmoothingMode Sm…...