BioPhys-Neural-Agent / src /live_streamer.rs
minseok
๐ŸŒŒ Release BioPhys 6.0 Grand Master: 16GB (14.89GB) Gemma-4 100% Devour, Ecosystem Evolution, Solar MoE, SNN Autoregressive SDK, Dynamic PhaseVM
be99550
Raw
History Blame Contribute Delete
1.38 kB
// ๐ŸŒŠ ์™ธ๋ถ€ ์‹ค์‹œ๊ฐ„ ์‹ ํ˜ธ ๋ฐ ํŒŒ๋™ ์ฃผ์ž… ๋ชจ๋“ˆ (src/live_streamer.rs)
use std::f32::consts::PI;
pub struct LiveSignalStreamer {
pub time: f32,
pub frequency: f32,
}
impl LiveSignalStreamer {
pub fn new(freq: f32) -> Self {
LiveSignalStreamer { time: 0.0, frequency: freq }
}
/// ์‹ค์‹œ๊ฐ„ ์‹œ๊ณ„์—ด ๊ณ ์กฐํŒŒ(Harmonics) ์‹ ํ˜ธ ์ƒ์„ฑ
pub fn generate_harmonic_wave(&mut self, size: usize) -> Vec<f32> {
self.time += 0.05;
let mut wave = Vec::with_capacity(size * size);
for y in 0..size {
for x in 0..size {
let dx = (x as f32) / (size as f32) * 2.0 - 1.0;
let dy = (y as f32) / (size as f32) * 2.0 - 1.0;
let dist = (dx * dx + dy * dy).sqrt();
// ์ค‘์‹ฌ์—์„œ ํผ์ ธ๋‚˜๊ฐ€๋Š” ์‚ฌ์ธํŒŒ + ๊ณ ์ฃผํŒŒ ๊ฐ„์„ญ
let signal = (dist * self.frequency * 2.0 * PI - self.time * 5.0).sin() * 0.8;
wave.push(signal);
}
}
wave
}
/// ํŠน์ • ์ขŒํ‘œ์— ์ˆœ๊ฐ„์ ์ธ ์™ธ๋ถ€ ์—๋„ˆ์ง€ ์ถฉ๊ฒฉํŒŒ(Impulse) ์ฃผ์ž…
pub fn inject_shockwave(grid: &mut [f32], size: usize, center_x: usize, center_y: usize, energy: f32) {
if center_x < size && center_y < size {
let idx = center_y * size + center_x;
grid[idx] += energy;
}
}
}