Subtitle: Wormhole Simulation and Riemann Zeta Function Zeros Author: Martino Battista Date: March 20, 2025 License: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
RIQA_Software is a modular open-source framework designed to explore the theoretical connection between traversable wormholes in general relativity and the non-trivial zeros of the Riemann zeta function ($$ \zeta(s) $$). The project integrates numerical simulations, interactive 2D and 3D visualizations, data collection from physical sensors, and a voice interface, offering a versatile tool for interdisciplinary research between theoretical physics and pure mathematics.
The central hypothesis proposes that the non-trivial zeros of $$ \zeta(s) $$ on the critical line ($$ s = 1/2 + it
- Numerical Simulations: Calculation of the wormhole metric with parameters influenced by the zeros of $$ \zeta(s) $$.
- Visualizations: Interactive 2D charts (Plotly) and dynamic 3D models (Three.js) of the wormhole geometry.
- Hardware Integration: Real-time data collection from sensors (e.g., MPU-6050 accelerometer) via Bluetooth Low Energy (BLE).
- Voice Control: Assistant interface to start simulations with voice commands.
- Database: Structured storage of results and experimental data with SQLite.
The repository structure is organized in a modular way to clearly separate the different components:
RIQA_Software/
├── frontend/ # React-based user interface
│ ├── src/ # Frontend source code
│ │ ├── App.js # Application routing and main layout
│ │ ├── components/ # Reusable React components
│ │ │ ├── SimulationForm.js # Form to start and configure simulations
│ │ │ └── Wormhole3D.js # 3D wormhole visualization with Three.js
│ │ └── pages/ # Application pages
│ │ └── Simulations.js # Page dedicated to simulations
├── backend/ # Flask server for logic and API
│ ├── main.py # Main Flask API file
│ ├── simulations/ # Modules for simulations
│ │ └── wormhole_zeta.py # Wormhole metric simulation based on zeta zeros
│ ├── assistant_interface.py # Voice interface for software control
│ └── mobile_data.py # Management of data received from sensors via Bluetooth/BLE
├── database/ # SQLite database for data and results
│ └── models/ # Data models
│ └── simulation_results.py # Database schema for simulation results
├── visualizations/ # Tools for data visualization
│ └── plots/ # Modules for charts
│ └── wormhole_plot.py # Interactive 2D plots of the metric with Plotly
├── hardware/ # Integration with hardware devices
│ └── mobile_integration/ # Communication with mobile devices
│ ├── bluetooth/ # Scripts for Bluetooth and BLE
│ │ └── arduino_hm10_sensors.ino # Arduino code for HM-10 and sensors
│ └── mobile_app/ # Mobile application
│ └── main.dart # Flutter app for control and monitoring
├── docs/ # Project documentation
│ ├── wormhole_zeta.md # Theory on wormholes and zeta function zeros
│ ├── formulas.tex # Collection of mathematical formulas in LaTeX
└── requirements.txt # List of Python dependencies
- Python: 3.8 or higher
- Node.js: For the React frontend
- Flutter: For the mobile app (iOS/Android)
- Arduino IDE: To upload code to hardware devices
- Hardware: Arduino with HM-10 module and MPU-6050 sensor (optional)
To start the RIQA_Software project on a Linux (Debian) terminal on a Chromebook, follow these steps. Make sure you have already configured the Linux environment on your Chromebook and have installed the necessary prerequisites (Python, Node.js, Flutter, Arduino IDE, etc.).
Open the Linux terminal and clone the project's GitHub repository:
git clone https://github.com/TeknologyGroup/RIQA_Software.git
cd RIQA_SoftwareInstall the necessary Python dependencies for the Flask backend:
pip install -r requirements.txtIf you don't have pip installed, you can install it with:
sudo apt update
sudo apt install python3-pipStart the Flask server for the backend:
python backend/main.pyThe Flask server should start and remain running, awaiting requests. Keep this terminal open.
Open a new terminal (or a new terminal tab) and navigate to the frontend folder:
cd frontendInstall the Node.js dependencies for the React frontend:
npm installAlso install the three.js library for the 3D visualizations:
npm install threeStart the React development server:
npm startThis will automatically open the frontend in the default browser at http://localhost:3000. If it doesn't open automatically, you can access it manually.
If you want to use the hardware (Arduino with HM-10 module and MPU-6050 sensor), follow these steps:
-
Upload Code to Arduino:
- Open the file
hardware/mobile_integration/bluetooth/arduino_hm10_sensors.inoin the Arduino IDE. - Connect the Arduino to the Chromebook and upload the code.
- Open the file
-
Start Data Management: Return to the main terminal (where you cloned the repository) and start the Python script for data management:
python backend/mobile_data.py
If you want to use the Flutter mobile app:
-
Install Flutter on your Chromebook (if you haven't already):
- Follow the official guide: https://flutter.dev/docs/get-started/install/linux
-
Navigate to the mobile app folder:
cd hardware/mobile_integration/mobile_app/ -
Install the Flutter dependencies:
flutter pub get
-
Run the app:
flutter run
Now that everything is set up, you can use the software:
-
Frontend:
- Open
http://localhost:3000in your browser. - Go to the "Simulations" page and enter an index of a non-trivial zero (e.g., "1" for $$ t_1 \approx 14.1347 $$) in the form.
- Click "Run Simulation" to start the simulation.
- Open
-
Visualization:
- The 2D plots of the metric will be displayed with Plotly.
- The interactive 3D model of the wormhole will be displayed with Three.js.
-
Hardware Data:
- If you have configured the hardware, the sensor data will be collected and correlated with the simulation parameters.
- If you encounter errors, verify that all dependencies are installed correctly.
- Check that the Flask and React servers are running.
- If you are using the hardware, make sure the Arduino is correctly connected and configured.
To stop the services:
- Press
Ctrl + Cin the terminals where Flask (backend/main.py) and React (npm start) are running.