Fornjot: 世界需要另一个CAD程序
Fornjot (Code-CAD in Rust) - Weekly Dev Log - 2022-W09
关于Fornjot
Fornjot是一个早期项目,旨在创建新一代的Code-CAD应用程序:因为世界需要另一个CAD程序。
这个项目的目标是创建一个有如下特色的CAD应用程序:
- 使用代码优先的方法;
- 是开源的;
- 广泛使用,支持所有主要平台;
- 基于一个新的CAD内核,用Rust语言编写;
- 提供一个全面的功能集;
- 以及对不同建模语言的支持;
这个目标还没有实现。事实上,还远远没有! 但Fornjot正在一步一步地慢慢变得更好。
Fornjot正在积极开发中,但仍然是实验性的。目前的工作重点是提供一套稳定的基本CAD功能。
基本建模功能
在这一点上,Fornjot支持基本的2D形状(由线段、圆和它们之间的有限组合组成的草图),沿着直线路径扫过这些2D形状以创建3D形状,以及对构造实体几何(CSG)的一些非常不完整的支持。
短期到中期的优先事项是提供固体CSG支持、更灵活的草图和更灵活的扫描(沿着圆或螺旋)。长期计划是不断增加更高级的CAD建模功能,以支持甚至复杂的模型和工作流程。
平台支持
截至目前,Fornjot在Linux、Windows和macOS上运行。该项目主要是在Linux上开发的,所以其他平台可能会有bug。
中短期的计划是增加对网络平台的支持,因此Fornjot可以在浏览器中运行。长期来看,计划是增加对主要移动平台的支持。
导出到3MF
支持将模型导出到3D制造格式(3MF),这在3D打印中使用。
Kira(游戏音频库) v0.6.0 - 完全重写以支持流媒体声音和更精简、更优雅的API
kira (game audio library) v0.6.0 - complete rewrite with streaming sound support and a leaner and more elegant API
关于Kira
Kira是一个与后台无关的库,用于为游戏创建富有表现力的音频。它提供了用于平滑调整声音属性的参数,一个灵活的混合器,用于将效果应用于音频,以及一个时钟系统,用于为音频事件精确计时。
平台支持
- Kira主要用于桌面平台。大多数测试是在Windows上进行的,但它也被成功地用在了Linux上。
- Kira也可以在wasm环境中使用,但有以下限制:
- 静态声音不能从文件中加载;
- 不支持流媒体声音,因为它们会大量使用线程;
代码示例
代码语言:javascript复制use kira::{
manager::{
AudioManager, AudioManagerSettings,
backend::cpal::CpalBackend,
},
sound::static_sound::{StaticSoundData, StaticSoundSettings},
};
// Create an audio manager. This plays sounds and manages resources.
let mut manager = AudioManager::<CpalBackend>::new(AudioManagerSettings::default())?;
let sound_data = StaticSoundData::from_file("sound.ogg", StaticSoundSettings::default())?;
manager.play(sound_data.clone())?;
// After a couple seconds...
manager.play(sound_data.clone())?;
// Cloning the sound data will not use any extra memory.
项目地址:https://github.com/tesselode/kira
turbofish: 飞驰的海洋生物
Pronunciation of <[_]>
turbofish,通常用于在Rust表达式中为泛型类型、函数或方法指定参数。
这里有个小网站可以通过泛型参数自定义turbofish的形状,它的小尾巴还能游动哦:
- turbofish-int
- turbofish-slice
使用Rust实现一个有大小限制可过期的LRU缓存
Implementing a size-bounded LRU cache with expiring entries for my DNS server (in Rust)
跟着作者一起学习,如何使用Rust编程语言为DNS服务器实现一个有大小限制的LRU缓存,并有过期的条目。
From 日报小组 odd-cat