Files
lucidia-math/lab/interface.py
Alexa Louise f5f1551964 Initial extraction from blackroad-prism-console
Lucidia Math - Advanced mathematical engines:

forge/ - Mathematical Foundations:
- consciousness.py (650 lines) - Consciousness modeling
- unified_geometry.py (402 lines) - Geometric transformations
- advanced_tools.py (356 lines) - Advanced utilities
- main.py (209 lines) - CLI orchestration
- numbers.py, proofs.py, fractals.py, dimensions.py

lab/ - Experimental Mathematics:
- unified_geometry_engine.py (492 lines) - Geometry engine
- amundson_equations.py (284 lines) - Custom equations
- iterative_math_build.py (198 lines) - Iterative construction
- trinary_logic.py (111 lines) - Three-valued logic
- prime_explorer.py (108 lines) - Prime exploration
- quantum_finance.py (83 lines) - Quantum finance models

3,664 lines of Python.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 08:43:07 -06:00

70 lines
2.2 KiB
Python

"""Command line interface for the Lucidia Math Lab."""
from __future__ import annotations
from datetime import datetime
from pathlib import Path
from .prime_explorer import PrimeVisualizer, plot_fourier, plot_residue, plot_ulam,
from .prime_explorer import fourier_prime_gaps, residue_grid, ulam_spiral
from .quantum_finance import QuantumFinanceSimulator
from .sine_wave_codex import plot_waves
from .trinary_logic import TrinaryLogicEngine
OUTPUT_DIR = Path("output")
def timestamp() -> str:
return datetime.utcnow().strftime("%Y%m%d_%H%M%S")
def main() -> None: # pragma: no cover - interactive
engine = TrinaryLogicEngine.from_json(Path(__file__).with_name("trinary_operators.json"))
visualizer = PrimeVisualizer(OUTPUT_DIR)
finance = QuantumFinanceSimulator(price=100.0, volatility=1.0)
menu = """
Lucidia Math Lab
-----------------
1. Show trinary logic AND table
2. Plot Ulam spiral
3. Plot residue grid (mod 10)
4. Fourier of prime gaps
5. Plot sine waves
6. Simulate quantum finance step
q. Quit
"""
while True:
choice = input(menu).strip()
if choice == "1":
print(engine.truth_table_ascii("AND"))
elif choice == "2":
grid, mask = ulam_spiral(25)
fig = plot_ulam(grid, mask)
visualizer.save_fig(fig, f"ulam_{timestamp()}")
elif choice == "3":
grid = residue_grid(10)
fig = plot_residue(grid)
visualizer.save_fig(fig, f"residue_{timestamp()}")
elif choice == "4":
gaps, fft = fourier_prime_gaps(100)
fig = plot_fourier(gaps, fft)
visualizer.save_fig(fig, f"fourier_{timestamp()}")
elif choice == "5":
fig = plot_waves([(1, 0, 1), (2, 0, 0.5)])
visualizer.save_fig(fig, f"waves_{timestamp()}")
elif choice == "6":
dist = finance.step()
price = finance.observe(dist)
fig = finance.plot(dist)
visualizer.save_fig(fig, f"finance_{timestamp()}")
print(f"Collapsed price: {price:.2f}")
elif choice.lower() == "q":
break
else:
print("Unknown option")
if __name__ == "__main__":
main()