如何在Houdini中编程How To Programming in Houdini

如何在Houdini中编程How To Programming in Houdini

Testing the limits of bullet engine I thought of creating a very complex mechanism, so the design of a mechanical CPU was born.
First designs incorporated 8-bit memory width, 4 register, general purpose external BUS and even a mechanical display… But very soon i realized that would require enormous ammount of simulated objects, so design was cut… and cut again… and cut again, till i was left with what you saw in the video.
The biggest design to fit into my laptop’s ram and simulate in ammount of time i’m willing to wait for it. so yeah….
It was hard to make the video representative for general public, hope it turned out at least entertaining and gave you at least general concept of how it works…
So what do we have in the end:
A simple 4-bit mechanical CPU with 2-phased clock, simulated purely with Bullet Physics Engine in Houdini
– dedicated 10-bit wide constant instruction memory
– 1 ACC register ALU with adder
– 4-bit RAM (16 memory lines in total)
– trivial (almost) control block
1 clock fixed length instruction set allows:
– memory-to-register and register-to-memory copy
– mem to reg addition
– arbitrary memory addressing
– next command argument substitution op (allows addressing memory from ACC for writing) (not used in video, but nessesery for Turing Completeness)
– JMP (goto)
– JNE (goto if last operation result is not zero) (allows loops)
Turing Complete, not counting memory limitation
ASM compiler is done with a simple python regex script, but you can write binary code directly as well)
project final hips as well as gear logic framework hdas are available here: github.com/pedohorse/gearlogic
you can also support me personally here:
patreon.com/xapkohheh
ko-fi.com/xapkohheh
though i absolutely do not rely on it and cannot promise to produce content regulary
attributions:
Music:
“Getting it Done” Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0 License
creativecommons.org/licenses/by/3.0/
Additional sounds:
computer-noise_dell_d505_oldhdd_2004.wav by matucha
freesound.org/people/matucha/sounds/160591/
Mechanical-Keyboard: Typing by M4taiori
freesound.org/people/M4taiori/sounds/331428/
测试子弹引擎的极限我想创建一个非常复杂的机制,因此机械CPU的设计诞生了。
首先设计包含8位存储器宽度,4个寄存器,通用外部总线甚至机械显示器……但很快我意识到需要大量的模拟物体,因此设计被切割……并再次切割..并再次剪切,直到我留下你在视频中看到的内容。
最大的设计适合我的笔记本电脑的内存并模拟我愿意等待的时间。是的….
很难让视频代表一般公众,希望它至少是有趣的,并至少给了你如何工作的一般概念……
那么我们到底有什么:
一个简单的4位机械CPU,带有2相时钟,纯粹使用Houdini中的Bullet Physics Engine进行模拟
– 专用的10位宽常量指令存储器
– 1 ACC使用加法器注册ALU
– 4位RAM(总共16条存储器线)
– 琐碎(几乎)控制块
1个时钟固定长度指令集允许:
– 存储器到寄存器和寄存器到存储器的复制
– mem to reg addition
– 任意内存寻址
– 下一个命令参数替换op(允许从ACC寻址存储器进行写入)(不用于视频,但是用于图灵完整性的nessesery)
– JMP(转到)
– JNE(如果最后的操作结果不为零则转到)(允许循环)
图灵完成,不计算内存限制
ASM编译器使用简单的python正则表达式脚本完成,但您也可以直接编写二进制代码)
项目最终髋关节以及齿轮逻辑框架hdas可在此处获取:github.com/pedohorse/gearlogic
虽然我绝对不依赖它,也不能保证定期制作内容
功能:
音乐:
“完成任务”Kevin MacLeod(incompetech.com)
根据知识共享许可:按署名3.0许可