每个工人小人代表一个 CPU 核心,他们跳舞的速度与对应核心的利用率成正比。利用率越高,跳得越快,能够比较直观地反映了系统当前的运行负载情况。
下载地址,欢迎诸君下载来玩。
-EOF-
]]>朋友们,我最近又做了一个很玄学(中二)的独立 App,叫做六爻起卦。
顾名思义,就是你可以在手机上模拟我们老祖宗用三枚钱币占卜的一种方式,即「六爻」来起卦,然后让 DeepSeek 来帮你解读卦象里的玄机。
做这个App的动念之一是之前念书的时候在图书馆里读了很多这些形而上的道学的书,比如野鹤老人所著的《增删卜易》啥的,觉得好玩。
作为一个坚定地无神论者,周易和六爻在我看来是一种宏观但又有点粗糙的经验主义,任何人都可以添加自己的解读,但这些神神鬼鬼的高术看起来很好玩,不是吗?
也许后面再不会做这类的 App 了,最近也一直在思考,我能给这个世界提供什么样的价值。
因为 DeepSeek API 的 Token 也是要花钱买的,本应用就浅浅收六元钱吧。
如果有朋友实在是不宽裕,连六块都没有,也可以发邮件问我要内购兑换码。
邮箱: zaijing@alu.hit.edu.cn
也欢迎朋友们关注我的小红书账号peakcoder,我会以 build in public 的方式发布一些开发 feature 以及 bug fix 日志等。
-EOF-
]]>我大概花了三周,翻译整理了作者 Nathan Vaughn 在他的博客上的 Shadertoy 英文教程,有兴趣的可以去观摩学习英文原版。
我翻译的中文教程,用 docusaurus 托管在 netlify
地址:shadertoy.peakcoder.com
先贴一个我自己写的 Shadertoy 是我自己头像的 Voxel Art Avatar
Shadertoy 网站至少你应该注册过了吧,Emmm..可以去给我点个赞 :)
另外,本教程的代码仓库地址:github.com/iMemento/shadertoy-tutorial
如果能给个 star ✨ 我会感激不尽。
希望你看完本教程,能有所收获。
-EOF-
]]>Sentis
是 Unity
推出的一个用于在 Unity
环境中运行机器学习模型的框架,可以简化将机器学习模型集成到 Unity
项目中的过程。
打开 Window > Package Manager
点击 +
选择 Add package by name
输入 com.unity.sentis
安装
去 Hugging Face
选择并下载你需要的模型,或者去 ModelZoo
之类下载。
在 Hugging Face
上,模型通常以 PyTorch
或 TensorFlow
格式提供,需要转换为 ONNX
格式。
假设你使用的是 PyTorch
模型,可以使用 torch.onnx.export
方法来完成转换。
import torch
from transformers import AutoModel
# Load your Hugging Face model
model = AutoModel.from_pretrained("your-model-name")
# Set the model to evaluation mode
model.eval()
# Dummy input for model export
dummy_input = torch.randn(1, 3, 224, 224) # Adjust dimensions as needed
# Export the model to ONNX format
torch.onnx.export(model, dummy_input, "model.onnx", opset_version=11)
如果不使用 Unity
想直接在 iOS
中使用,则需要再讲 ONNX 转化为 Core Ml 格式。
using UnityEngine;
using Unity.Sentis;
using System.IO;
public class SentisExample : MonoBehaviour
{
private Model runtimeModel;
private IWorker worker;
void Start()
{
// 加载 ONNX 模型文件
var modelFilePath = Application.dataPath + "/model.onnx";
var modelData = File.ReadAllBytes(modelFilePath);
// 加载模型到 Sentis
runtimeModel = ModelLoader.Load(modelData);
worker = WorkerFactory.CreateWorker(WorkerFactory.Type.ComputePrecompiled, runtimeModel);
// 准备输入数据(示例)
// 根据模型调整维度
var inputTensor = new Tensor(1, 3, 224, 224);
// 执行推理
worker.Execute(inputTensor);
var outputTensor = worker.PeekOutput();
// 处理输出数据
Debug.Log(outputTensor);
// 清理资源
inputTensor.Dispose();
outputTensor.Dispose();
worker.Dispose();
}
}
为了在移动设备上高效运行,模型通常需要经过优化,包括:
将模型从32位浮点数表示转换为8位整数表示,可以显著减少模型的大小和计算需求。
移除模型中冗余的权重和节点,减少计算复杂度。
将复杂模型的知识转移到一个较小的模型中。
最新的iPhone
能够运行包含数百万到数千万参数的优化模型。例如,MobileNet
和 TinyBERT
等模型经过量化和其他优化技术处理后,可以在iPhone
上高效地运行。
–EOF–
]]>发一个年初做的 APP「分花」 凑一篇 Blog 吧。
大概这辈子再也不会做这种类型的软件了…
有人要内购兑换码吗:)
可以邮件: zaijing@alu.hit.edu.cn
小红书: peakcoder
愿你有无数的鲜花与浪漫
–EOF–
]]>.gitattributes
文件在 Git 仓库中用于定义各种属性,以指定 Git 如何处理仓库中的文件。 指定文件的行尾风格,例如,强制在 Windows 和 UNIX 系统之间一致地使用 LF 或 CRLF。
*.txt text eol=lf
*.bat text eol=crlf
为特定文件或路径指定合并策略,比如使用文本方式合并或使用特定的合并驱动。
*.png merge=theirs
将大文件如视频、音频或大型二进制文件交给 Git LFS 管理。
*.mp4 filter=lfs diff=lfs merge=lfs -text
指定在使用 git archive 时应该忽略的文件。
*.log export-ignore
控制 git 命令如何统计语言使用情况,可以用于排除某些文件。
*.md linguist-documentation
指定文件的差异展示方式,如是否应该被 Git 识别为文本,并如何显示差异。
*.jpg binary
*.html diff=html
禁用对特定文件的 Git 压缩。
*.jpg -filter
为文件设置自定义的清理(clean)和还原(smudge)过滤器。
*.json filter=jsonFilter
在提交前检查文件是否符合特定的属性要求。
*.py check=python
指定文件是否应被视为文本,对行尾进行规范化,或者被视为二进制文件。
*.txt text
*.bin binary
–EOF–
]]>之前在AppStore上架过,长久不更新现已下架。
代码不多,大量的时间都在美术上消耗掉了,年少时的我是真的很爱画像素画 :)
–EOF–
]]>例如以下代码的快捷键为 CTRL + G
[MenuItem("Test/example %g")]
private static void Test()
{
Debug.Log("TEST!");
}
–EOF–
]]>这可能是以下情况导致的:
–EOF–
]]>否则需要以下操作让 Shader 在 Single Pass Instanced 模式下让渲染 compatible
1. #include "UnityCG.cginc" - near the top of the CGPROGRAM block
2. UNITY_INSTANCE_ID - should be in the the vert input data struct (ex: appdata)
3. UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); - should be in the vert function
4. UNITY_VERTEX_OUTPUT_STEREO - should be in the frag input data struct (ex: v2f)
–EOF–
]]>