AirNet is a personal project that intelligently pools the mobile connections of 5 to 8 nearby users to bypass cellular network saturation. The devices form a local mesh network, compress and encrypt data, and then dynamically select the phone with the best bandwidth to collectively relay requests to the carrier.
Project: AirNet
Project Goal:
Solution Overview File
Algorithmic Structure
# Constants
MAX_PHONES = 8 # Maximum number of phones in the mesh network
LOCAL_PROTOCOL = "Bluetooth" # Connection protocol (Wi-Fi Direct, Bluetooth, etc.)
# Mesh network initialization
mesh_network = initialize_mesh_network(LOCAL_PROTOCOL)
# Main loop while AirNet is active
while AirNet.is_active():
# Handling new phones
if new_phone_detected():
if mesh_network.size() < MAX_PHONES:
add_phone_to_network(new_phone)
synchronize_network_state()
else:
reject_new_phone() # Network full
# Handling outgoing data
for phone in mesh_network.phones:
if phone.has_data_to_send():
# Split the data into chunks based on number of phones
chunks = split_data(phone.data, mesh_network.size())
# Distribute each chunk to a phone in the network
for chunk, target in assign(chunks, mesh_network.phones):
send_chunk_to_phone(chunk, target)
# Each phone relays its chunk to the cellular network
if target.has_chunk():
response = target.send_to_cellular_network(target.chunk)
target.store_response(response)
# Gather responses and reconstruct the data
responses = collect_responses_from_mesh()
reconstructed_data = reassemble_data(responses)
# Return the data to the original phone
send_to_original_phone(reconstructed_data, phone)
# Handling phone departures
if phone_leaves_network():
remove_phone_from_network(departing_phone)
synchronize_network_state()
# Periodic maintenance
if time_to_check_network():
check_network_connectivity()
optimize_routing_paths()