Files
2nd/10_Wiki/Topics/Game_Design/Biomedical-Engineering.md
T
2026-05-10 22:08:15 +09:00

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. |