167 lines
5.4 KiB
Markdown
167 lines
5.4 KiB
Markdown
---
|
|
id: wiki-2026-0508-biomedical-engineering
|
|
title: Biomedical Engineering
|
|
category: 10_Wiki/Topics
|
|
status: verified
|
|
canonical_id: self
|
|
aliases: [BME, biomedical-eng]
|
|
duplicate_of: none
|
|
source_trust_level: A
|
|
confidence_score: 0.85
|
|
verification_status: applied
|
|
tags: [biomedical, engineering, healthcare, simulation, game-design]
|
|
raw_sources: []
|
|
last_reinforced: 2026-05-10
|
|
github_commit: pending
|
|
tech_stack:
|
|
language: simulation
|
|
framework: medical-game-system
|
|
---
|
|
|
|
# Biomedical Engineering
|
|
|
|
## 매 한 줄
|
|
> **"매 engineering principles 의 biology / medicine 의 적용"**. 매 prosthetics, imaging, drug-delivery, biomechanics, neural interfaces 의 매 cross-discipline. 매 game-design context 에서는 매 simulation realism + 매 character ability tree 의 source of truth.
|
|
|
|
## 매 핵심
|
|
|
|
### 매 분야
|
|
- **Biomechanics**: 매 forces on tissue, gait, joint loading.
|
|
- **Bioinstrumentation**: 매 ECG, EEG, EMG sensors.
|
|
- **Biomaterials**: 매 implants, scaffolds.
|
|
- **Tissue eng**: 매 organ regen, 3D bioprinting.
|
|
- **Imaging**: 매 MRI, CT, ultrasound, PET.
|
|
- **Neural eng**: 매 BCI, deep-brain stimulation.
|
|
|
|
### 매 game-design 의 응용
|
|
- **Injury simulation**: 매 realistic damage model — 매 organ-level wound.
|
|
- **Prosthetic abilities**: 매 cybernetic upgrade tree.
|
|
- **Diagnostic minigame**: 매 imaging puzzle, sensor reading.
|
|
- **Medic class**: 매 skill rotation 의 biological grounding.
|
|
|
|
### 매 핵심 개념
|
|
1. 매 stress / strain (mechanical).
|
|
2. 매 signal-to-noise (instrumentation).
|
|
3. 매 biocompatibility (materials).
|
|
4. 매 perfusion / hypoxia (tissue).
|
|
|
|
## 💻 패턴
|
|
|
|
### Hit-zone damage model (biomechanics-grounded)
|
|
```typescript
|
|
type HitZone = "head" | "torso" | "limb" | "joint";
|
|
|
|
const ZONE_PROFILE = {
|
|
head: { mult: 3.0, bleed: 0.8, fracture: 0.6 },
|
|
torso: { mult: 1.5, bleed: 0.4, fracture: 0.2 },
|
|
limb: { mult: 0.7, bleed: 0.3, fracture: 0.5 },
|
|
joint: { mult: 1.0, bleed: 0.2, fracture: 0.7 },
|
|
};
|
|
|
|
function applyDamage(actor: Actor, zone: HitZone, base: number) {
|
|
const p = ZONE_PROFILE[zone];
|
|
actor.hp -= base * p.mult;
|
|
if (Math.random() < p.bleed) actor.statuses.add("bleeding");
|
|
if (Math.random() < p.fracture * 0.3) actor.statuses.add("fractured");
|
|
}
|
|
```
|
|
|
|
### EEG-style brain-state minigame
|
|
```typescript
|
|
function generateEEGSignal(state: "calm" | "focused" | "stressed", t: number) {
|
|
// alpha (8-12Hz), beta (12-30Hz), gamma (30-100Hz)
|
|
const bands = {
|
|
calm: { alpha: 0.7, beta: 0.2, gamma: 0.1 },
|
|
focused: { alpha: 0.3, beta: 0.5, gamma: 0.2 },
|
|
stressed: { alpha: 0.1, beta: 0.4, gamma: 0.5 },
|
|
}[state];
|
|
return bands.alpha * Math.sin(2*Math.PI*10*t)
|
|
+ bands.beta * Math.sin(2*Math.PI*20*t)
|
|
+ bands.gamma * Math.sin(2*Math.PI*50*t)
|
|
+ (Math.random() - 0.5) * 0.1;
|
|
}
|
|
```
|
|
|
|
### Prosthetic ability tree
|
|
```typescript
|
|
interface Prosthetic {
|
|
slot: "arm" | "leg" | "eye" | "spine";
|
|
tiers: AbilityTier[];
|
|
power_cost: number;
|
|
biocompatibility: number; // 0-1, body-rejection risk
|
|
}
|
|
|
|
function installProsthetic(player: Player, p: Prosthetic) {
|
|
if (player.power_capacity < p.power_cost) throw new Error("insufficient power");
|
|
if (Math.random() > p.biocompatibility) {
|
|
player.statuses.add("rejection"); // requires immunosuppressant
|
|
}
|
|
player.prosthetics[p.slot] = p;
|
|
player.power_capacity -= p.power_cost;
|
|
}
|
|
```
|
|
|
|
### Imaging-puzzle (segment tumor)
|
|
```typescript
|
|
function segmentLesion(imageGrid: number[][], threshold: number) {
|
|
const visited = new Set<string>();
|
|
const lesions: Cluster[] = [];
|
|
for (let y = 0; y < imageGrid.length; y++) {
|
|
for (let x = 0; x < imageGrid[0].length; x++) {
|
|
if (imageGrid[y][x] > threshold && !visited.has(`${x},${y}`)) {
|
|
lesions.push(floodFill(imageGrid, x, y, threshold, visited));
|
|
}
|
|
}
|
|
}
|
|
return lesions.filter(c => c.size > 5); // ignore noise
|
|
}
|
|
```
|
|
|
|
### Drug-delivery cooldown (pharmacokinetics)
|
|
```typescript
|
|
function plasmaConcentration(dose: number, t_hours: number, k_elim: number) {
|
|
// first-order elimination
|
|
return dose * Math.exp(-k_elim * t_hours);
|
|
}
|
|
|
|
function effectiveAtT(player: Player, drug: Drug, t: number) {
|
|
const c = plasmaConcentration(drug.dose, t - drug.taken_at, drug.k_elim);
|
|
return c > drug.min_effective_conc;
|
|
}
|
|
```
|
|
|
|
## 매 결정 기준
|
|
| 상황 | Approach |
|
|
|---|---|
|
|
| 매 realistic medic gameplay | hit-zone + bleed + fracture model |
|
|
| 매 cyberpunk RPG | prosthetic + biocompatibility tree |
|
|
| 매 puzzle-medical | imaging + diagnosis minigame |
|
|
| 매 arcade | abstract HP — biomedical 의 X |
|
|
|
|
**기본값**: 매 zone-based damage + 매 limited cybernetic slot.
|
|
|
|
## 🔗 Graph
|
|
- 부모: [[Engineering]] · [[Medicine]]
|
|
- 변형: [[Biomechanics-of-Injury]] · [[Gait-Analysis-Laboratory]]
|
|
- 응용: [[Damage-Resistance-Platforms]] · [[Combat_Balance_Buff]]
|
|
- Adjacent: [[Elite-Athletic-Development]]
|
|
|
|
## 🤖 LLM 활용
|
|
**언제**: 매 simulation grounding, medic-class design, cyberpunk lore.
|
|
**언제 X**: 매 abstract arcade — 매 over-engineering.
|
|
|
|
## ❌ 안티패턴
|
|
- **Realism over fun**: 매 100% sim — 매 onboarding 실패.
|
|
- **Magical healing**: 매 lore inconsistency — 매 sim claim 시.
|
|
- **No body part 의 의미**: 매 zone 의 무의미한 implementation.
|
|
|
|
## 🧪 검증 / 중복
|
|
- Verified (BME textbooks: Saltzman, Enderle; clinical biomechanics).
|
|
- 신뢰도 A.
|
|
|
|
## 🕓 Changelog
|
|
| 날짜 | 변경 |
|
|
|---|---|
|
|
| 2026-05-08 | Phase 1 |
|
|
| 2026-05-10 | Manual cleanup — biomedical engineering principles + game-design application. |
|