All Projects → ParadropLabs → Paradrop

ParadropLabs / Paradrop

Licence: Apache-2.0 license
An Edge-computing platform based on Wi-Fi routers

Programming Languages

python
139335 projects - #7 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to Paradrop

managed ml systems and iot
Managed Machine Learning Systems and Internet of Things Live Lesson
Stars: ✭ 35 (-55.7%)
Mutual labels:  edge-computing
faas-sim
A framework for trace-driven simulation of serverless Function-as-a-Service platforms
Stars: ✭ 33 (-58.23%)
Mutual labels:  edge-computing
motor-defect-detector-python
Predict performance issues with manufacturing equipment motors. Perform local or cloud analytics of the issues found, and then display the data on a user interface to determine when failures might arise.
Stars: ✭ 24 (-69.62%)
Mutual labels:  edge-computing
microblx
microblx: real-time, embedded, reflective function blocks.
Stars: ✭ 37 (-53.16%)
Mutual labels:  edge-computing
MicrosoftCloudWorkshop-Asia
Microsoft Cloud Workshop Asia for Intelligent Cloud / Intelligent Edge
Stars: ✭ 20 (-74.68%)
Mutual labels:  edge-computing
ambianic-edge
The core runtime engine for Ambianic Edge devices.
Stars: ✭ 98 (+24.05%)
Mutual labels:  edge-computing
ekuiper
Lightweight data stream processing engine for IoT edge
Stars: ✭ 975 (+1134.18%)
Mutual labels:  edge-computing
rpi-urban-mobility-tracker
The easiest way to count pedestrians, cyclists, and vehicles on edge computing devices or live video feeds.
Stars: ✭ 75 (-5.06%)
Mutual labels:  edge-computing
EdgeSim
Simulate the real environment, perform edge computing, edge caching experiments
Stars: ✭ 53 (-32.91%)
Mutual labels:  edge-computing
AdvantEDGE
AdvantEDGE, Mobile Edge Emulation Platform
Stars: ✭ 36 (-54.43%)
Mutual labels:  edge-computing
cep
CEP is a software platform designed for users that want to learn or rapidly prototype using standard A.I. components.
Stars: ✭ 140 (+77.22%)
Mutual labels:  edge-computing
iot-edge-samples
Showcase of various extension scenarios for SAP IoT Edge, intelligent edge computing software that provides "microservices at the edge" for Internet of Things (IoT).
Stars: ✭ 16 (-79.75%)
Mutual labels:  edge-computing
zenoh-c
zenoh client library written in C and targeting micro-controllers.
Stars: ✭ 28 (-64.56%)
Mutual labels:  edge-computing
smart-social-distancing
Social Distancing Detector using deep learning and capable to run on edge AI devices such as NVIDIA Jetson, Google Coral, and more.
Stars: ✭ 129 (+63.29%)
Mutual labels:  edge-computing
ML-MCU
Code for IoT Journal paper title 'ML-MCU: A Framework to Train ML Classifiers on MCU-based IoT Edge Devices'
Stars: ✭ 28 (-64.56%)
Mutual labels:  edge-computing
object-flaw-detector-cpp
Detect various irregularities of a product as it moves along a conveyor belt.
Stars: ✭ 19 (-75.95%)
Mutual labels:  edge-computing
intruder-detector-python
Build an application that alerts you when someone enters a restricted area. Learn how to use models for multiclass object detection.
Stars: ✭ 16 (-79.75%)
Mutual labels:  edge-computing
sense-iOS
Enhance your iOS app with the ability to see and interact with humans using the RGB camera.
Stars: ✭ 19 (-75.95%)
Mutual labels:  edge-computing
nn-Meter
A DNN inference latency prediction toolkit for accurately modeling and predicting the latency on diverse edge devices.
Stars: ✭ 211 (+167.09%)
Mutual labels:  edge-computing
object-size-detector-python
Monitor mechanical bolts as they move down a conveyor belt. When a bolt of an irregular size is detected, this solution emits an alert.
Stars: ✭ 26 (-67.09%)
Mutual labels:  edge-computing

Paradrop

Documentation Status Coverage Status Build Status Snap Status Docker Image

Get it from the Snap Store

What is Paradrop?

Paradrop is a software platform that brings the cloud into the home by enabling apps to exist on Wi-Fi routers. The Wi-Fi router is the last always-on, always-connected, ubiquitous device in the home today. At Paradrop Labs, we believe that some (if not most) cloud or smart-hub services should actually exist on Wi-Fi routers.

Read our paper or visit our website to learn more!

What can I do with Paradrop?

Since Wi-Fi routers are the central nervous system for all Internet based services in the home, the possibilities are quite endless. We have implemented many example applications, you can see the source code here. We encourage you to test out Paradrop by cloning our repo and checking out our getting started page.

Get Started

Paradrop uses Docker containers to run edge computing services, but Paradrop itself can also run as a Docker container. This is a good option if you want to try out Paradrop's core functionality without using special hardware or changing your operating system.

Docker Container in Safe Mode

Run the following command if you only want to test the core edge computing functionality. This will allow you to install and remove chutes, experiment with the edge API and connect the node to the cloud controller. Since this command creates a container separated from the host network, Paradrop will not be able to manage the network interfaces, wireless networks, and firewall settings of the host operating system.

docker run --privileged --name paradrop --publish 8080:80 -v /var/run/docker.sock:/var/run/docker.sock paradrop/daemon

After the Paradrop daemon is running, you can access the admin panel with a web browser by going to http://localhost:8080. If prompted, enter the user name paradrop and no password. You can also use pdtools node commands such as the install-chute command. The following example assumes you are running it from a directory containing the source code for a chute, which means there should be a valid paradrop.yaml file in the directory.

pdtools node --target localhost:8080 install-chute

Docker Container with Host Network Access

Run the following command if you want to test all of Paradrop's functions. Giving the Paradrop container access to the host network stack will enable it to manage network interfaces, wireless networks, and firewall settings. By default, Paradrop will try to create a wireless access point using one of the machine's WiFi interfaces. Warning: because Paradrop will make potentially disruptive system configuration changes, we do not recommend running Paradrop using the following command on a workstation that you use for other purposes. Consider running it in a virtual machine instead.

docker run --privileged --name paradrop --net=host -v /var/run/docker.sock:/var/run/docker.sock paradrop/daemon

You can access the Paradrop node in the same way as described in the Safe Mode section above. However, the node is listening directly on the host port 80. That means you can access http://localhost or use pdtools node --target localhost.

Applications

Paradrop is just a platform for running edge computing applications, which we call chutes. Once you have a Paradrop node running, you may want to check out one or more of the following example chutes that can run on Paradrop.

  • captive-portal This chute creates a WiFi network that uses iptables rules to redirect users to a landing when they first connect to the network. It works nicely with CNA implementations on most popular devices.
  • Cells A multiplayer browser-based action game where players take control of a cell. The goal is to gain as much mass as possible by eating food and smaller cells and avoid being eaten. The code was developed by another team and adapted to run on Paradrop.
  • Drop64 Run a Nintendo 64 emulator in a browser window. This chute was created by using emscripten to compile mupen64plus to JavaScript.
  • go-hello-world Example chute that implements a web server in Go.
  • gradle-hello-world Example chute that implements a web server using Java and Gradle.
  • node-hello-world Example chute that implements a web server using Node.js.
  • ParentalControlStarterChute This chute creates a WiFi network that implements content filtering at the HTTP and DNS levels. This code has been used in tutorials, so it is intended to be a starting point rather than a complete application.
  • python-socket-example Example chute that implements a basic TCP server in Python along with example client code.
  • Security-Camera This chute works with wireless cameras to implement basic motion detection. The code has been used in tutorials, so it is more of a starting point than a complete application.
  • StickyBoard This project demonstrates using edge computing for localized content. Users who connect to the Paradrop node are able to post pictures on the "sticky board" that are only viewable by other people on the same network.
  • traffic-camera This chute demonstrates a computer vision task implemented at the edge. It uses an OpenCV cascade classifier to detect and count vehicles in video from a traffic camera.
  • WiFiSense This chute uses WiFi monitor mode to detect nearby devices and send periodic reports to a configurable server. Running this on multiple Paradrop nodes could be used to implement interesting behavior analytics.
  • wiki This project implements a simple wiki page. The code is from an open source project that was adapted to run on Paradrop.

Preparing a new release

  1. Merge changes into the master branch.
  2. Run ./pdbuild.sh release <version> to update version number and tag the release.
  3. Run ./pdbuild.sh build to build a new snap.
  4. Run ./pdbuild.sh image to build a new disk image.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].