반응형

전체 글 35

Graphic 포스팅 계획 [취미]

Isaac simulator나 Muzuco 등 다양한 시뮬레이터에서 그래픽스가 쓰인다. 또한 내가 만든 애플리케이션을 appimage로 패키징 해서 배포한다면, GUI가 필요하다. 또한 만화나 애니메이션 버튜버쪽에 관심이 있어서 취미로 공부해보고 싶다. 취미인 만큼, 시장성보단 재미로 하고 있다. Rust를 통해 Graphics를 공부해보려고 한다. CMU에서 들은 강의 내용도 요약할 예정이다. Rerun 비쥬얼라이저에 쓰이는 (winit egui), 요즘 뜨고 있는 WebAssembly, WebGPU 등을 공부 해보려고 한다. 1. 뭘 공부 하면 재밌을까?┌─────────────────────────────────────────┐│ Application (게임, 앱) ..

chapter1. FEM을 위한 용어 정리

시뮬레이션에서 유체나 유동성 고체를 나타내려면 어떻게 해야 할까? FEM(Finite Element Method, 유한요소법)은 3D 대상을 유한한 그래프로 쪼개서 미분방정식을 해석하는 방법이다. Electromagnetic potential, 열전도, 구조 해석 등 연속체의 역학의 근사해를 얻을 수 있다. 그중 재료역학의 관점으로 FEM 이야기를 풀려고 한다. 1. Stress Strain의 정의Stress[σ, N/m^2, Pa, 응력]: 물체의 외력에 저항하여 물체 내부에 발생하는 단위 면적당 힘. 3x3 Cauchy stress tensor로 나타난다. 차원 텐서로 나타난다. Strain [ε,Demension Free, gradients of displacement, 변형률]: 외력에 의한 ..

Orbit: A Unified Simulation Framework for Interactive Robot Learning Environments, 시뮬레이션 주파수는?

0. 이 글은Orbit 논문의 요약이다. 또한 시뮬레이션의 주파수 관계에 대해 생각이 들어있다. 1. 저자 및 학교 소개ETH Zurich(스위스)에서, Nvidia와 University of Toronto(캐나다)의 도움을 받아서 만든 논문이다. Marco Hutter교수님의 Robotic Systems Lab에서 나온 논문이다.2. 내용 요약Orbit은 Issac Lab 의 전신으로, 최신의 랜더링 기법과 물리 엔진을 적용한 시뮬레이터이다. 시뮬레이션에는 물리엔진과 랜더러가 사용된다.시뮬레이터의 주요 기능물리 엔진랜더링 방법론정의힘의 작용(충돌)에 대한 미분방정식을 푸는 것3D의 모양을 카메라의 픽셀 스페이스로 옮겨 오는 것핵심 기능Physx 엔진으로 구현Path tracing (Ray tracing..

쏙쏙 들어오는 함수형 코딩

본 포스팅은 '쏙쏙 들어오는 함수형 코딩' 책에 대한 서평이다.기억할 것은 함수형 프로그래밍의 철학, 함수형 프로그래밍 툴 (코드 디자인 방법), 설계방법1. 함수형 프로그래밍이란?순수 함수(pure function)를 일급객체(first class object)로 만드는 코드 구조를 갖는다.프로그램을 데이터, 로직, UI를 분리하는 개념과 비슷하다.2. 용어 정리순수 함수, pure funciton순수 함수는 이상적인 함수다. 책에서는 계산이라고 부르며, 3가지 요건을 만족해야 한다.Side effect가 없어야 한다.내부의 변화가 밖의 시스템에 영향력이 없어야한다. (즉, 전역 변수를 함수 내부에서 호출하는 행위를 하면 안 된다.)시간에 관계 없이 같은 동작을 해야 한다.이메일 보내기, DB에 저장하..

Book Review 2025.08.31

객체 지향의 사실과 오해

0. 기억할 것객체지향에서 좋은 API 설계는 책임과 자율의 상충관계이다. what 보다는 how에 집중하라.How에 관한 내용을 파라미터로 넣으면 객체의 자율성이 떨어진다. How는 functional class로 만들어서 처리한다. 맴버 변수로 기억해야 한다.다른 object를 어떻게 호출할 것인가? 3가지가 있다. effective c++에서도 case3을 추천한다. 필요한 부분만 넘겨야 한다면 case2도 좋다.class c1{ ...}class c2{ ...}// case1class c1{ c2 member_obj();}c1.member_obj.foo()// case2c1.call(c2,) // 이런식으로 코딩하면 좋지 않다. 객체 자체를 넘기면, 필요 없는 부분까지 c1에게 넘..

Book Review 2025.08.27

BOJ 28423번 게임 C++

IDEA: f^n(x) 연산이 나오지 않는 경우: f^n(x) 연산에서 순환 하는 경우.i -> i_prime으로 node이동 Engineeringi_prime을 계산한 후, out of bound 조심하기#include #include #include #include #include #include using namespace std;vector parse(int i) { vector ret; while (i > 0) { ret.push_back(i % 10); i /= 10; } return ret;}int summation(vector vec){ int ret = 0; for(int i = 0; i vec){ int ret = 1; for(int i = 0;..

Python Variable Arguments(variadic arguments,가변인자), Ellipsis(엘리프시스)

Python의 Variable Arguments와 Ellipsis를 정리한다.Python Variable Arguments 어디에 적용하고 싶은가?다른 사람의 class를 기반으로 상속받아 코딩하려고 한다. 내가 만드는 child class에서, parent class의 생성자를 그대로 호출하고 싶다. 이때 같은 내용이 반복되지 않도록 Variable Arguments(가변인자)를 쓰려고 한다.class parent(): def __init__(self, param1: int, param2:np.ndarray, ... ): self.param1 = param1 ...class OurWrapper(parent): def __init__(*args, **kwargs): ..

Engineering/Python 2025.04.10

Chapter 4. Synchronizing Concurrent Operations. (3) - Functional Programming

Functional Programming 함수형 프로그래밍을 한 줄로 요약하자면 pure function을 first class object로 보는 것이다. 이를 통해 데이터와 로직을 분리한다. pure function이란 함수 밖에 영역에 영향을 끼치지 않으며, input이 같으면 언제나 output이 같은 함수를 뜻 한다. 이를 first class object로 본다는 것은 함수를 parameter처럼 주고받을 수 있게 만들었단 뜻이다. 즉, 고차함수(Higher order function)를 만들거나 콜백(callback)을 구현할 수 있다.함수형 로직으로 프로그래밍을 설계하면 쉽게 병렬 프로그램을 짤 수 있다. 요즘 나온 언어(rust, clojure)는 함수형 프로그래밍을 염두해 두고 만들었다..

Engineering/C++ 2025.01.26

진짜 하루만에 읽는 반도체 산업 리뷰

Image processor 에 관한 논문을 읽는데 아무리 봐도 이해가 안 가서 읽기 시작했다. 1.  트랜지스터 역사논리회로를 만들려면 트랜지스터가 필요하다.진공관BJT (Bipolar Junction Transistor, 바이폴라 접합 트랜지스터)MOSFET (Metal-Oxide-Semiconductor FET (Field Effect Transistor, 전계 효과 트랜지스터) )BJT는 고등학교 때 배운 PnP NpN 트랜지스터이다. 이것을 더 작게 만들도록 개발한 것이 MOSFET이다.2. 반도체 분류3. 반도체 8단계 공정웨이퍼 제조 공정(Wafering)산화 공정(Oxidation)포토 공정(Photolithography)에칭 공정(Etching)증착 공정(Deposition) 및 이온 주..

Book Review 2025.01.24
반응형