All Projects → rngtng → NabaztagHackKit

rngtng / NabaztagHackKit

Licence: MIT license
A simple SDK to get your hands dirty with Nabaztag

Programming Languages

ruby
36898 projects - #4 most used programming language
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
Makefile
30231 projects

Projects that are alternatives of or similar to NabaztagHackKit

Shadertoy Browser
Shadertoy browser & viewer for Mac built in Rust
Stars: ✭ 176 (+528.57%)
Mutual labels:  metal
Methanekit
🎲 Modern 3D graphics made simple with cross-platform C++17 meta-API on top of DirectX 12 & Metal (Vulkan is coming)
Stars: ✭ 197 (+603.57%)
Mutual labels:  metal
Amazing Arkit
ARKit相关资源汇总 群:326705018
Stars: ✭ 239 (+753.57%)
Mutual labels:  metal
Alloy
Make usage of Metal API a pleasure
Stars: ✭ 178 (+535.71%)
Mutual labels:  metal
Untoldengine
An easy to use, Open-Source, 3D game engine for iOS/macOS game development.
Stars: ✭ 193 (+589.29%)
Mutual labels:  metal
Agimagecontrols
cool tools for image edition
Stars: ✭ 217 (+675%)
Mutual labels:  metal
Floor
A C++ Compute/Graphics Library and Toolchain enabling same-source CUDA/Host/Metal/OpenCL/Vulkan C++ programming and execution.
Stars: ✭ 166 (+492.86%)
Mutual labels:  metal
Provision
Digital Rebar Provision is a simple and powerful Golang executable that provides a complete API-driven DHCP/PXE/TFTP provisioning system.
Stars: ✭ 252 (+800%)
Mutual labels:  metal
The Forge
The Forge Cross-Platform Rendering Framework PC Windows, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4, PS5, Switch, Quest 2
Stars: ✭ 2,710 (+9578.57%)
Mutual labels:  metal
Wolf.engine
The Wolf is a comprehensive set of C/C++ open source libraries for realtime rendering, realtime streaming and game developing
Stars: ✭ 230 (+721.43%)
Mutual labels:  metal
Metalangle
MetalANGLE: OpenGL ES to Metal API translation layer
Stars: ✭ 182 (+550%)
Mutual labels:  metal
Ogre
scene-oriented, flexible 3D engine (C++, Python, C#, Java)
Stars: ✭ 2,582 (+9121.43%)
Mutual labels:  metal
Metal.js
Build UI components in a solid, flexible way
Stars: ✭ 227 (+710.71%)
Mutual labels:  metal
Aether3d
Aether3D Game Engine
Stars: ✭ 177 (+532.14%)
Mutual labels:  metal
Pmfx Shader
Cross platform shader system for HLSL, GLSL, Metal and SPIR-V.
Stars: ✭ 245 (+775%)
Mutual labels:  metal
Animatedgif
A screensaver for Mac OSX / macOS that plays animated GIFs and APNGs
Stars: ✭ 174 (+521.43%)
Mutual labels:  metal
Metalimage
MetalImage is more faster and powerful than opengles for iOS. It is very similar to GPUImage framework, but perform a better 3D rendering and multithreads computing abilities.
Stars: ✭ 207 (+639.29%)
Mutual labels:  metal
Cocos2d X
Cocos2d-x is a suite of open-source, cross-platform, game-development tools used by millions of developers all over the world.
Stars: ✭ 15,713 (+56017.86%)
Mutual labels:  metal
Octopuskit
2D ECS game engine in 100% Swift + SwiftUI for iOS, macOS, tvOS
Stars: ✭ 246 (+778.57%)
Mutual labels:  metal
Occa
JIT Compilation for Multiple Architectures: C++, OpenMP, CUDA, HIP, OpenCL, Metal
Stars: ✭ 230 (+721.43%)
Mutual labels:  metal

Nabaztag Hack Kit

Everything you need to hack the Rabbit: a sinatra server including simple api framework to run custom bytecode on Nabaztag v1/v2. Includes original compiler sources for linux and a modified mac os x version.

Getting Started

Installation

The Hack Kit is distributed as a ruby gem. It comes with a simple web server (based on sinatra) which runs out-of-the for connecting you rabbit and distributing the nabaztag bytecode. In addition it includes sinatra helpers/modules to communicate with the rabbit easily. Lastly it provides binaries to compile your own Nabaztag bytecode (see Binaries below).

Simple Server

The Server is the communication endpoint for the rabbit. Its two main purposes are:

  1. serving the bytecode on bootup
  2. receive and respond to HTTP requests in a defined format.

Setup

  1. Install dependencies first:
gem install nabaztag_hack_kit

or if you have a Gemfile

bundle install --path=vendor/bundle
  1. Then, create a config.ru file
require 'nabaztag_hack_kit/server'

run NabaztagHackKit::Server.new
  1. Finally, to start and run the server, execute:
bundle exec rackup -p <portnumer>

See examples/ folder for more sophisticated usage.

Binaries

The kit comes with violet sources and binaries to compile custom Nabaztag bytecode. See folder compiler/. The linux sources are (more or less) the original ones by violet, the mac osx version was created by @ztalbot2000. The compiler binaries are compiled on installation of the gem.

Following three binaries are available:

mtl_comp

A wrapper around mtl_comp. Compiles a *.mtl file. It calls mtl_merge before

mtl_simu

A wrapper around mtl_simu. Runs a *.mtl file. It calls mtl_merge before

mtl_merge

Merges multiple *.mtl files into one. Files are included like in C: #include "<relative path to file>". Output is temporary file .tmp.mtl.

Development

Be sure to checkout mtl_linux submodule first:

git submodule update

To update the kit run:

bundle exec rake build && bundle exec gem install -V pkg/nabaztag_hack_kit-0.1.0.beta6.gem

API

As example and for my own purposes I implemented a simple API to deal with RFID, LEDS, BUTTON and EARS easily. (see bytecode/main.mtl)

Input Devices

RFID

see my other project NabaztagInjector

BUTTON

Current Button has very basic functionality: a short press send HTTP Request of type Log to server, a long press forces the bunny to restart.

Output Devices

Data for all output devices are stored in buffers. Each device has two: one for onetime, imediate playback, another for permanent loops.

LEDS

Buffers 0 - 9, where 0-4 are used for onetime, and 5-9 for loop playback.

EARS

Buffers 10 - 13, where 10 & 11 are used for onetime, and 12 & 13 for loop playback.

Disclamer

The server part was heavily inspired by Trudy.rb, compiler code copied from OpenJabNab. Thanks!

Nabaztag Background

Read following posting for more background on Nabaztag Hacking (uses google translate:)

Related Projects

New firmware with WPA2

  1. https://github.com/ccarlo64/firmware_nabaztag (see http://nabaztag.forumactif.fr/t15323-firmware-for-wpa-wpa2-test)

  2. https://github.com/RedoXyde/nabgcc https://github.com/RedoXyde/mtl_linux (see http://nabaztag.forumactif.fr/t15280p25-nabaztagtag-en-wpa2)

ServerlessNabaztag -> https://github.com/andreax79/ServerlessNabaztag

CloudServer replace: http://nabaztaglives.com/

Rebuild Nabaztag:

Websocket

Websocket HowTo:

Future

I'd like to hack the Violet mir:ror too. Some starting points:

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