Codename "Heartbeat". A neural network with an intrinsic oscillatory "pulse" that maintains and evolves state independently of input. Built on Liquid Time-Constant (LTC) networks augmented with learnable oscillatory dynamics.
- Python 3.10+ managed with
uv - PyTorch 2.x
ncps(Neural Circuit Policies) for LTC/CfC basetorchdiffeqfor ODE solvinghatchlingbuild backend
src/pdna/ # main package
tests/ # pytest tests
configs/ # model/experiment configs
scripts/ # training & eval scripts
notebooks/ # analysis notebooks
data/ # datasets (gitignored)
docs/ # project plans and documentation
uv sync— install dependenciesuv run pytest— run testsuv run pytest tests/test_foo.py -v— run specific testuv run python scripts/<script>.py— run a script
- Source code lives in
src/pdna/ - All model variants (A–F) share identical hyperparameters except architectural differences
- Use layered git commits — one logical change per commit
- Config-driven experiments: hyperparameters in
configs/, not hardcoded - Tests mirror source structure:
src/pdna/models/foo.py→tests/test_foo.py
- Variant A: Baseline LTC (control)
- Variant B: LTC + Noise (random perturbation control)
- Variant C: LTC + Pulse (structured oscillation only)
- Variant D: LTC + SelfAttend (self-attention on own state only)
- Variant E: Full PDNA (pulse + self-attend)
- Variant F: Full + Idle (pulse + self-attend + idle ticks)
τ(x) · dh/dt = -h + f(h, x; θ) + α · pulse(t, h) + β · self_attend(h)
pulse(t, h) = A · sin(ω · t + φ(h))
self_attend(h) = W_self · σ(h)
See docs/task_plan.md for the full 13-task execution plan with dependencies.