- Multipolarity: signals are distributions over N poles instead of binary (+/−);
LokaCnandMultipolarValuekeep the algebra and Σ‑balance. - Pseudomultipolar cascades: Σ (or a weighted linear form Σ_c = ∑(cᵢ·aᵢ)) is controlled by M/N/NX stages (
physics.sigma,devices.sigma_guard.SigmaGuard) so that a common component is removed before decoding. - Volumetric path (lightweight):
MultipolarOscillator→ TX/RX antennas → receiver form a simple medium/communication chain;geometry_profileis a label, not a full 3D field model. - Pseudo‑quantum layer: CPU/NumPy states via
MultiConjugateFunctionwith scalarprobability_density()(= Σ|ψ|^k, k=n_conjugates, aliases:conjugacy_density()/conjugacy_norm()) and tensorprobability_tensor()for simple “quantum‑like” experiments.
1. Basic 4‑pole loka and Σ‑aware value
from loka_light.core.algebras import LokaCn
from loka_light.core.value import MultipolarValue
loka = LokaCn(4, "add", "C4_add", ["A", "B", "C", "D"])
mv = MultipolarValue(loka, {"A": 1.0, "C": -1.0})
print("mv:", mv)
print("collapsed:", mv.collapse()) # complex number with Σ structure2. SigmaGuard as a one‑line Σ→0 purification
from loka_light.core.algebras import LokaCn
from loka_light.core.value import MultipolarValue
from loka_light.devices.sigma_guard import SigmaGuard
loka = LokaCn(3, "add", "C3_add", ["P0", "P1", "P2"])
mv = MultipolarValue(loka, {"P0": 1.0, "P1": 0.5, "P2": -0.2})
guard = SigmaGuard()
mv_clean = guard.apply(mv)
print("residual before:", guard.residual(mv))
print("residual after:", guard.residual(mv_clean))Advanced: pass linear_coeffs=[...] to enforce a weighted linear law ∑(cᵢ·aᵢ)→0 instead of plain Σ.
3. Simple pseudo‑quantum state with tensor metric
import numpy as np
from loka_light.physics.multipolar_wave import MultiConjugateFunction
psi = MultiConjugateFunction([1.0 + 0.0j, 1.0j], n_conjugates=2)
print("probability_density:", psi.probability_density())
print("probability_tensor:\n", psi.probability_tensor())pip install loka-lightpython -m venv .venv
source .venv/bin/activate
pip install -e .[dev]Each scenario is a plain function living under
loka_light.applications.scenarios. Invoke them with
python - <<'PY' ... PY blocks (or adapt for your favourite runner).
The commands below write their artefacts into runs/ subdirectories.
python - <<'PY'
from loka_light.applications.scenarios import object_polarity_scan
object_polarity_scan({})
PYpython - <<'PY'
from loka_light.applications.scenarios import secure_transmission
secure_transmission({})
PYNote on regimes: the secure chain uses the volumetric path (oscillator → TX/RX
antennas → receiver) for propagation in a medium, while Σ‑projection (M/N) is a
separate pseudomultipolar stage (see devices/sigma_guard.py) applied at O2/O3
to remove the common component before decoding.
python - <<'PY'
from loka_light.applications.scenarios import electrolyser_stage
electrolyser_stage({})
PYpython - <<'PY'
from loka_light.applications.scenarios import polarization_field
polarization_field({})
PYpython - <<'PY'
from loka_light.applications.scenarios import property_transfer_chain
property_transfer_chain({})
PYpython - <<'PY'
from loka_light.applications.scenarios import structuring_field
structuring_field({})
PYpython - <<'PY'
from loka_light.applications.scenarios import pseudo_mnx_chain
pseudo_mnx_chain({"n": 6, "k": 3, "sections": 3, "bits": [1,0,1]})
PYWrites runs/pseudo_mnx_chain/trace.json with the |Σ| values and complex Σ residual (re/im)
after each NX section, plus the decoded index after Σ purification. Set "linear_coeffs": [...]
to trace/clean a weighted linear form Σ_c = ∑(cᵢ·aᵢ).
python - <<'PY'
from loka_light.applications.scenarios import pseudo_quantum_hadamard_phase
pseudo_quantum_hadamard_phase({
"shots": 256,
"phase_angle": 1.0471975512, # ~pi/3
# "outdir": "runs/pseudo_quantum_hadamard", # optional
})
PYWrites summary.json under the chosen outdir with the measurement histogram,
Σ trace by stage and a snapshot of the final state.
These scenarios write machine‑readable artefacts (JSON/NPZ) under runs/ so you
can inspect Σ traces, witness values, and projection losses without notebooks.
python - <<'PY'
from loka_light.applications.scenarios import pseudo_quantum_witness_pack
pseudo_quantum_witness_pack({"seed": 123, "epsilon": 0.2})
PYWrites runs/pseudo_quantum_witness_pack/summary.json with CHSH/CGLMP values and
Σ‑invariant vs generic noise deltas (same seed/ε).
python - <<'PY'
from loka_light.applications.scenarios import pseudomultipolar_timeseries_demo
pseudomultipolar_timeseries_demo({"n": 6, "steps": 256, "sections": 3, "tap": 0.5, "seed": 123})
PYWrites runs/pseudomultipolar_timeseries/series.npz (O1/O2/O3 signals + traces)
and summary.json (mean |Σ| per stage, monotonicity, RX mismatch metrics).
Set "linear_coeffs": [...] to measure/clean a weighted linear form Σ_c = ∑(cᵢ·aᵢ).
python - <<'PY'
from loka_light.applications.scenarios import translation_gap_demo
translation_gap_demo({"n": 6, "seed": 123})
PYWrites runs/translation_gap/gap.npz and summary.json with visibility/loss
metrics for a matched vs mismatched 2‑pole projection after Σ purification.
Pseudomultipolar (network) Volumetric (field)
┌──────────────┐ O1 ┌─────────┐ O2 ┌──────────┐ medium ┌──────────┐ O3 ┌──────────┐
│ Block M ├────────►│ N / NX │──────►│ TX ant. │────────►│ RX ant. │──────►│ Decoder │
│ (sum 2‑pole) │ rel.G │ Σ→0 │ rel.G │ gain+loss│ │ gain+loss│ │ (argmax) │
└──────────────┘ └─────────┘ └──────────┘ └──────────┘ └──────────┘
- O1 (relative ground): summation node of
PseudoBlockM(pseudomultipolar M‑stage). - O2 (relative ground):
SigmaGuardapplies N or NX to drive Σ→0 before decode. - TX/RX antennas: use
gainand optionalloss_dbto model simple attenuation. - Frequency: carried in
WaveMetadata.frequency_hzand used by the receiver for compatibility.
Relevant APIs
- M‑stage:
devices.pseudomultipolar.PseudoBlockM,devices.pseudomultipolar.BipolarSource. - Σ‑stage:
physics.sigma(P⊥/N/NX,sigma_residual,linear_coeffs),devices.sigma_guard.SigmaGuard. - Volumetric:
devices.sources.MultipolarOscillator(withgeometry_profilelabel),devices.communication.MultipolarAntenna(gain/loss),devices.detectors.MultipolarReceiver.
Pass keyword arguments through the dictionary literal to tweak behaviour; for
example, set {"outdir": "runs/custom_scan", "true_polarity": 8} when calling
object_polarity_scan.
Sample notebook-free loop for the devices:
python - <<'PY'
from loka_light.cognition.models import NPoleMind
from loka_light.devices.sources import MultipolarOscillator, NBranchInductor, MultiPlateCapacitor
from loka_light.devices.communication import MultipolarTransmitter
from loka_light.devices.detectors import MultipolarReceiver
mind = NPoleMind(n=4, output_mode="mv")
inductor = NBranchInductor("L", ("n1", "n2"), n_branches=1, l_each=1e-3)
capacitor = MultiPlateCapacitor("C", ("n1", "n2"), n_plates=2, c_single=1e-6)
osc_tx = MultipolarOscillator([inductor], [capacitor], mind=mind)
osc_rx = MultipolarOscillator([inductor], [capacitor], mind=mind)
transmitter = MultipolarTransmitter(osc_tx, mind=mind)
receiver = MultipolarReceiver(osc_rx, mind=mind)
wave = transmitter.transmit([1, 2, 3])
receiver.receive(wave)
print(receiver.demodulate())
PYThe CPU implementation of the pseudo‑quantum simulator lives under
loka_light.simulation.multipolar_pseudo_quantum and works directly with
MultiConjugateFunction states.
Quick inline demo:
python - <<'PY'
import numpy as np
from loka_light.simulation import multipolar_pseudo_quantum as mpq
# Minimal H → phase → H → measure scenario
summary = mpq.hadamard_phase_measure_demo(shots=256, seed=42)
print("counts:", summary["counts"])
# Inspect correctness vs analytic reference
report = mpq.single_qubit_correctness_demo(phase_angle=np.pi/3, shots=1024, seed=123)
print("variation_distance:", report.variation_distance)
PY