All Projects → victordiaz → Phonk

victordiaz / Phonk

Licence: gpl-3.0
PHONK is a self-contained creative scripting toolbox for new and old Android Devices

Programming Languages

javascript
184084 projects - #8 most used programming language
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Phonk

Android
Android app for collecting OpenStreetCam imagery
Stars: ✭ 119 (-61.61%)
Mutual labels:  sensors, osc
Freedomotic
Open IoT Framework
Stars: ✭ 354 (+14.19%)
Mutual labels:  framework, mqtt
System sensors
Logging of system sensor specific for the RPI and sending them to a MQTT broker
Stars: ✭ 134 (-56.77%)
Mutual labels:  sensors, mqtt
Smarthome
@skalavala 👍 Nothing But Smarthome Stuff! - By Mahasri Kalavala
Stars: ✭ 437 (+40.97%)
Mutual labels:  sensors, mqtt
Involt
Inject hardware interactions directly into HTML layout.
Stars: ✭ 128 (-58.71%)
Mutual labels:  framework, prototyping
Platypush
A versatile and extensible platform for home and life automation with hundreds of supported integrations
Stars: ✭ 192 (-38.06%)
Mutual labels:  sensors, mqtt
Chataigne
Artist-friendly Modular Machine for Art and Technology
Stars: ✭ 251 (-19.03%)
Mutual labels:  sensors, osc
Inchat
一个轻量级、高效率的支持多端(应用与硬件Iot)的可分布式、异步网络应用通讯框架
Stars: ✭ 654 (+110.97%)
Mutual labels:  framework, mqtt
Homie Esp8266
💡 ESP8266 framework for Homie, a lightweight MQTT convention for the IoT
Stars: ✭ 1,241 (+300.32%)
Mutual labels:  framework, mqtt
Extosc
extOSC is a tool dedicated to simplify creation of applications in Unity with OSC protocol usage.
Stars: ✭ 69 (-77.74%)
Mutual labels:  framework, osc
M5Stack-Air-Quality-ESPHome
ESPHome configuration for M5Stack's PM2.5 Air Quality Kit with the PMSA003 particulate matter sensor and the SHT20 temperature and humidity sensor
Stars: ✭ 19 (-93.87%)
Mutual labels:  mqtt, sensors
Mag.js
MagJS - Modular Application Glue
Stars: ✭ 157 (-49.35%)
Mutual labels:  framework, prototyping
Farm-Data-Relay-System
A system that uses ESP-NOW, LoRa, and other protocols to transport sensor data in remote areas without relying on WiFi.
Stars: ✭ 97 (-68.71%)
Mutual labels:  mqtt, sensors
Openvpnadapter
Objective-C wrapper for OpenVPN library. Compatible with iOS and macOS.
Stars: ✭ 302 (-2.58%)
Mutual labels:  framework
Zer0mqttserver
使用Java AIO实现的MQTT协议服务器,用于推送和IM聊天
Stars: ✭ 308 (-0.65%)
Mutual labels:  mqtt
Esp32 Ble2mqtt
A BLE to MQTT bridge running on an ESP32
Stars: ✭ 301 (-2.9%)
Mutual labels:  mqtt
Knight
Knight is a game framework based on Unity3D engine. It includes a complete assetbundle manager, a c# hotfix module based on ILRuntime, and a UI module based on MVVM, and other basic functions support.
Stars: ✭ 302 (-2.58%)
Mutual labels:  framework
Esphome
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Stars: ✭ 4,324 (+1294.84%)
Mutual labels:  mqtt
Merry
🌊🌊⛵️🌊🌊 - cute streaming API framework
Stars: ✭ 308 (-0.65%)
Mutual labels:  framework
Laravel Sketchpad
An innovative front-end environment for interactive Laravel development
Stars: ✭ 302 (-2.58%)
Mutual labels:  prototyping

PHONK

github version PRs welcome

PHONK is a coding playground for new and old Android devices.

Create scripts rapidly from your phone or using the remote Web Editor on your computer using Javascript. The API is simple and extensive. GUI, audio, graphics, Bluetooth BLE, Arduino, OSC, MIDI, and much more.

PHONK WebsiteTutorialForumDiscord

animation

Features

  • Takes 1 min to set up on your phone
  • No need to install anything on your computer
  • PHONK uses JavaScript but it calls native Java functions, getting close to native speed
  • Simplified API. Create custom interfaces and access on-device sensors in a couple of lines of code
  • Pseudo Live Coding (select your code and Control (or Cmd) + Enter to live execute)
  • Bluetooth and Arduino in a few lines of code
  • MQTT, HTTP requests, WebSockets, OSC, MIDI
  • Access to Processing.org API
  • Use your PureData skills thanks to the embedded LibPd
  • OpenStreetMaps and muuuch more!

How to install it

Get it from

If you have an Android phone with a version higher than 4.1 (that's from 2012!) then it should work! If you find a problem, please create an issue.

During the first install, the app will

  1. Ask you for a bunch of permissions. I recommend accepting all of them to be able to run the examples. You can always revoke them :)
  2. Install the examples in the device "sdcard" folder. Doing this we can easily access the examples and self-made scripts from any other app.

How to create your first script

Check the Getting started guide for a more detailed explanation

Run the PHONK app in your Android device. You can create your first script within the device, although it might be a bit cumbersome using the device virtual keyboard.

Instead, connect your computer and Android to the same Wi-Fi network. On your computer open the browser and type the IP address indicated on your phone after pressing "Start web editor". A web editor will load, allowing you to code on the phone.

You can create a new project and copy and paste this into the editor.

// ui elements need x, y, w, h normalized paramaters
ui.addButton('Start accelerometer', 0.1, 0.45, 0.8, 0.1).onClick(function () {
  sensors.accelerometer.start()
})

sensors.accelerometer.onChange(function (e) {
  console.log(e.x, e.y, e.z)
})

Now run the project. 🎉

You can explore the variety of examples included in PHONK and modify them in order to explore its capabilities.

Compile it yourself

PHONK depends on 3 subprojects. Each of them is on a different repository so things are a bit easy to manage.

  1. The main PHONK Android project (this repo)
  2. The Web Editor https://github.com/victordiaz/phonk-editor
  3. The examples https://github.com/victordiaz/phonk-examples

In order to compile PHONK you should fetch the 3 repos so they follow the following folder structure.

phonk_project
 ├ phonk # the Android project
 ├ phonk-editor
 └ phonk-examples

Once you fetched all projects, you should

  1. Copy the examples to the Android assets folder. Go to the phonk-examples folder and run npm run cleanAndDeploy
  2. Add the Web Editor to the Android app asset folder. Go to the phonk-editor folder, npm install to install the Web Editor dependencies and finally run npm run buildAndDeploy to build the Web Editor and copy
  3. In Android Studio import the phonk folder and build the project.

Once you've done that, there is no necessity to do the first steps anymore unless you want to update the Web Editor or the examples.

Project structure

The PHONK app is divided into two modules: phonk_app and phonk_apprunner.

  • phonk_app is the app that you see when you start PHONK and it manages all the stuff to let you make projects.
  • phonk_apprunner is the part in charge of running the scripts and it contains all the API. If you want to add or improve the API you can go to the folder phonk/phonk_apprunner/src/main/java/io/phonk/runner/apprunner/api. All the methods you include there will automatically be exposed to JavaScript.

Get Involved

  • Write about it
  • Make something with PHONK.app and tell me about it. I would love to know how you use it. (GitHub, e-mail, etc.)
  • Have a look at the issues

Roadmap

  • Getting started guide
  • Improve documentation
  • How-to-contribute guide

License

This project is licensed under the terms of the GPL / LGPL v3 License. You can check out the full LICENSE description on the file LICENSE.txt.

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].