f3.js
For those who create Internet of Things by code.

日本語?

Create Internet of Things by Code!

f3.js stands for Form Follows Function() for JavaScript and is a web-based IDE for IoT applications. If you can write JavaScript, you can simultaneously define every aspect of the applications with the f3.js API - not only programs of microcontrollers and tiny computers but also physical layouts of enclosures of the devices.

Write a piece of code
Laser cut panels
Assemble and run the app

The f3.js API is provided as a Node.js module named f3js. You can specify which hardware modules to use (e.g. var Camera = require('jscam'); var c = new Camera()), how they behave (e.g. c.takePicture()), and where they are placed on laser-cut interfaces by code (e.g. var f3js = require('f3js'); f3js.add(c, 75, 35) opening holes for wires and screws to hold the module).

Even if you cannot write programs, you can customize IoT applications written by others through intuitive GUI such as sliders and checkboxes. The f3.js IDE tells you which components to purchase and how to print out the device enclosures, assemble the device, and install the programs. It is as easy as assembling plastic models!

News

Launched a research project page

2018/5/8

We have also re-started the development of the f3.js project. Stay tuned!

ACM DIS 2017

2017/6/14

Oral presentation

ACM/IEEE HRI 2017 (f3js-logs)

2017/3/27

Demonstration

情報処理学会 インタラクション 2016

2016/3/4

Oral presentation in a domestic HCI conference

JS Board Shibuya LTナイト!

2015/12/14

Lightning talk about f3.js in a domestic event

日本ソフトウェア科学会 WISS 2015

2015/12/14

Demonstration in a domestic HCI conference

国際会議 ACM UIST 2015

2015/11/9

Demonstration

You can reach more detailed news on Twitter @f3jsorg.

α test phase

f3.js is currently testing its α version. Thank you for joining us for our journey to ease the process of making stable IoT prototypes with solid enclosures. You can also refer to the old top page for the project overview.

Below is the list of planned features and known bugs. If you notice something else to improve f3.js, please let me (@junkato) know.

Planned features

  • プロジェクトを組み立てるのに必要なモジュールを対応Webサイトの買い物かごに入れられるようにする
    v0.4.2
  • 組み立て手順をPDFで印刷できるようにする
    v0.4.2
  • Nintendo Laboなどで活用できるように、レーザーカッター以外(厚紙プリンタ)をサポートする
    v0.5.0
  • extrudeした立体を3D表示できるようにする
  • プロジェクトに複数ファイルを追加できるようにする
  • SVGデータをインポートできるようにする
  • 印刷プレビューにコンポーネントをドラッグ & ドロップで配置できるようにする

Known bugs

  • Nothing filed at this moment, wow!

Recent updates

v0.4.1 (2018/5/18)
対応するnpmモジュールがないレイアウト情報も登録できるようになった。その他、細かなバグ修正。
v0.4.0 (2018/5/8)
メンテナンスリリース。内部で利用するライブラリのバージョンを上げて開発環境をTypeScript 2.6にアップデートした。
v0.3.0 (2017/1/27)
軽微なバグ修正。開発環境をTypeScript 1.x から 2.1.5 にアップデートした。
v0.2.9 (2016/9/12)
各プロジェクトページ下部の組み立て方説明を拡充した。モジュール同士が筐体上で干渉するとき警告(赤枠)を出せるようにした。
v0.2.8 (2016/9/9)
展開図上で、隣接面の対応する辺にラベルを表示できるようになった。
v0.2.7 (2016/9/7)
v0.2.6 (2016/9/6)
プロジェクトに動画や画像の外部リンクを足せるようにした。文字列定数をエンドユーザがカスタマイズできるようになった。
v0.2.0 (2016/6/16)
α版一般公開。
v0.1.0 (2016/3/7)
α版初公開

これよりも詳細な更新履歴はdocs.f3js.org をご覧ください。