創造する玩具


primitive forms in the mind

理をつくる

理をつくる

2009.01.26

独自の規則(ルール/パターン)を設定し、その展開を楽しむ玩具。

ボーンの織機/lotte/susi/ines/jutta

2009.03.05 - 2009.03.21
  copyright: nic
reference: http://www.nictoys.com/
  

簡易な手織機(※1)。

織りはば約400ミリまで対応している。それぞれの製品で織ることのできるはばと長さ、および綜絖の有無は:

ロッテ  …… 綜絖なし、はば:約180ミリ、長さ:約260ミリ
スージー …… 綜絖あり、はば:約180ミリ、長さ:約460ミリ
イネス  …… 綜絖あり、はば:約200ミリ、長さ:無制限
ユッタ  …… 綜絖あり、はば:約300ミリ/400ミリ、長さ:無制限

ここで「ロッテ」/「スージー」は、経糸を張る2本の横棒が固定されており、横棒間の距離の1〜2倍ほどが織物の長さの限度となる。「イネス」/「ユッタ」はこの横棒を回せるので、(糸を巻き取れるかぎり)いくらでも長い織物を作ることができる。

綜絖は平織にのみ対応している。綜絖を回転させることで、経糸の上下を逆にできる。なお「ロッテ」のみ、綜絖が付属しない(経糸と緯糸の交差は、杼を使わず針で行う)。

また筬は、いずれもプラスチック製の櫛が使われる。

※1
この織機では、経糸(たていと)と緯糸(よこいと)を交互に交差させ(平織)、織物を作る。綜絖(そうこう/ヘドル)でとなりあう経糸を上下にずらし、その間に、杼(ひ/シャトル)に巻いた緯糸を通すことができる。また通した緯糸の固定に、筬(おさ/リード)を使う。

レインボー・ルーム/rainbow loom

2015.03.21
  copyright: choon's design llc.
reference: https://www.rainbowloom.com/
  

輪ゴムを使った手編機。


ルーム(織機)に並んだ差込式のピンに輪ゴムをひっかけ、それらをフック(鉤針)で交差させてつなげていく[※1]

応用として、ルームの代わりにカトラリーのフォークを使ったり、道具を使わない指編みなど、さまざまな技法がある。

※1
輪ゴムどうしの連結は、(結び目理論の)ブルニアン絡み目が基本。

専用のルームでは幅の狭いものしか編めないので、作るものはブレスレットやリングなど小物が中心になりがち。

とはいえ編物はいくらでもつなげられ/形状も自在なので、帽子や服、アクセサリーやぬいぐるみなど、さまざまな作品が作られている:

紹介サイト(日本)[→ https://www.face ...

2011年にアメリカで発売されたこの玩具は、2013年に一般に認知されるとともに各国で一大ブームを巻き起こし、その人気から類似の商品が乱立した。

このためチューンズ・デザイン社(この玩具の製造元)は、米国で取得している特許を根拠に、ジネコン社(「ファンルーム」を製造)/ラローゼ社(「クレイジールーム」を製造)を特許侵害で訴えている。

日本では2013年に販売が開始された。なお2014年にはハナヤマ社が、類似品の「ファンルーム」を発売:

ファンルーム(日本)[→ http://www.hanay ...
参照
公式サイト[→ https://www.rain ...
参照
公式サイト(日本)[→ http://www.rainb ...

シフテオ・キューブ/シフタブル/sifteo cubes/siftables

2011.05.30 - 2014.10.22
  copyright:
reference: http://siftables.com/
  

MITメディアラボ、デビッド・メリルの発案から生まれたブロック玩具。

パーツは、センサ/グラフィカル・ディスプレイ/ワイヤレス通信機能を埋め込んだ、それ自体がコンピュータである小さなブロック。ブロックどうしの配置を変えることで、さまざまな効果を引き出す……たとえば、ふたつのブロックを近づけることで色を混ぜる、ブロックをサウンド・エフェクトの要素に対応させシンセサイザーにする、キャラクタ表示とセンサを組み合わせワード・パズルとして使う、ブロックをゲームの登場人物と対応させ物語をつくる、など。

2009年夏にシフテオ社(sifteo )設立、2010年1月、公式サイトのリニューアル(URL変更)。

2011年9月に発売。

2014年7月、3Dロボティクス社がシフテオ社を買収。

ビジュアル・プログラミングをフィジカル・コンピューティングの形で実現したものだが、将来のブロック玩具の姿をかいまみせてくれる……このブロックに(同じくMITから生まれた「トボボ」のクレイトロニクスを発展させて)結合力と機動性を加えれば、夢の構成玩具が実現するのだろうけれど……

参照
公式サイト[→ http://sifteo.co ...
参照
公式サイト(旧)[→ http://siftables ...

LOGO/logo

2009.03.05
  

命令型のプログラミング言語。教育用。

ポインタを<亀>に見立て、プログラムで亀を移動させることで、その足跡(軌跡)からさまざまな図形を描く。開発者(おもに子供)は、自分の思い描く軌跡を再現しようと、プログラミングにひとり苦労したりひとに相談したりする……パパートの提唱した子供のための学習メソッド<コンストラクショニズム>は、その後のケイやレズニックの活動に影響を与えている。

構成玩具「レゴ・マインドストーム」と連携できるLOGOも販売されている。

スクラッチ/scratch

2011.05.30 - 2015.03.25
  copyright: mit media laboratory
reference: http://media.mit.edu/
  

命令型のプログラミング言語。教育用。

MITメディアラボ、ミッチェル・レズニック氏の研究室から生まれた。

コンピュータへの<命令>を描いたアイコン群をつなげていくことで、プログラムを組むことができる(ビジュアル・プログラミング)。キーボードをあつかい慣れない幼児でも論理性や創造性を養えるという点で、画期的な教育ソフトウェア。

作ったアプリケーションはだれでも共有サイトで公開することができ、そこから作品づくりのコラボレーションも生まれている。

この開発環境と相互作用できる外部デバイス(センサやモータからロボットまで)も多く提供されており、フィジカル・コンピューティングへ入り口ともなっている。

日本語にも対応。命令のアイコン表示には<ひらがなのみ>という選択もできる。


2006年、公開。

2013年5月、ウェブ・ブラウザ版(フラッシュ版)が公開。


公式のソフトウェアはアイパッド(ipad)で使うことはできないが、このソフトの派生版がいくつか提供されている[※1]。


※1
2010年にスクラッチのブラウジング・アプリがアップルストアから排除されたが、アップル側と開発側(レズニックの開発チームとは別)の調整の結果、これは不特定のアプリをダウンロードさせることが規約に反したため、とされた。つまりプログラムを作るだけのアプリなら問題はなく、じっさいそのようなアプリはすでにアップルストアで提供されている。
iOS上の派生版

2014年7月、タフツ大学/MITメディアラボ/PICO社の協業チームが、幼児向けの「スクラッチジュニア」を提供:

スクラッチジュニア(scratch jr)[→ http://www.scrat ...

2014年9月、スクラッチのUIをよりタブレット向けに特化させたアプリ「ティクル」が、クラウドファンディング上で資金を調達。2015年3月、一般公開。空を飛ぶデバイス(parrot minidrone)/水と陸を走るデバイス(sphero)など、他の玩具との連携機能を用意:

ティクル(tickle)[→ http://www.tickl ...

同じアイパッド上のビジュアルプログラミング環境に、「ティンカー」がある。こちらはそれなりに本格的なゲームを制作するためのグラフィック/命令ブロックが用意されている:
ティンカー(tynker)[→ https://www.tynk ...
iOS〜スモールトーク(squeak smalltalk )上の派生版

2014年8月、ソフトウメヤ社が、アイパッド版の「ピョンキー」を提供(開発にはCEOの梅澤真史、PEGプロジェクトの阿部和広がかかわる。開発段階ではレズニックやケイへのプレゼンも実施):

ピョンキー(pyonkee )[→ http://www.softu ...
JS(javascript )上の派生版

2012年、一般的な実行環境(html5/javascript)でスクラッチ風のプログラミング開発環境を提供する、「スナップ!」も登場。タブレットでの動作は若干遅いが、再帰呼び出しなど本家にない言語仕様も実装されている。UCBが支援:

スナップ!(spap !)[→ http://snap.berk ...

2015年、同様にJS版のスクラッチ風環境が提供されたが、ライセンス上の問題があり今度の見通しは不透明:
ビクシィ(pixie )[→ https://github.c ...
JS(javascript )〜スモールトーク(squeak smalltalk)上の派生版

2014年、スクイークJS上で動作するスクラッチが提供:

スクイークJS上のスクラッチ(scratch on squeakjs )
参照
公式サイト[→ http://scratch.m ...

スモールトーク/smalltalk

2009.03.05 - 2013.08.22
  copyright: the squeak community
reference: http://www.squeak.org/
  

命令型のプログラミング言語。オブジェクト指向に特化。

学習用の環境としてはスクイーク(squeak)がある……これはゼロックス社の最初の製品(smalltalk-80)からアップル社のハードウェアに移植された製品(apple smalltalk-80)が元になっており、ここから現在の一般配布用の仮想マシン・ソースコード(C 言語)が生成された。


古典でありながら、(ケイの考える)オブジェクト指向を早くから極めてしまっていた……開発環境そのものがOSであり(もともとゼロックス社のパーソナル・コンピュータ用OSとして設計されていた)、既存のOSで動かすときは、スモールトークのための仮想マシンが用意される。この場合、開発環境はひとつのイメージ・ファイルに保存される。いろいろなバリエーションの環境を保存できるため、利用者(=開発者)は、<環境自体>を<オブジェクトとメッセージ>という統一されたやり方で、失敗を恐れずどんどん変えていくことができる。

参照
公式サイト:スクイーク[→ http://www.squea ...
設計
アラン・ケイ/alan kay

ルビー/ruby

2013.08.22
  copyright: ruby association llc
reference: http://www.ruby-lang.org/
  

命令型のプログラミング言語。オブジェクト指向に特化。

純粋な(すべてのデータ型がオブジェクトである)オブジェクト指向プログラミングを、スクリプトとして書くことができる。

2012年に国際規格(ISO/IEC)に承認。

スモールトークは開発環境としては理想ではあるけれど、それ自体がOSであることを前提に設計されているのでちょっと重い……いっぽうこのスクリプト言語は(数字や文字までがオブジェクトという)純粋なオブジェクト指向を、気軽に体験させてくれる。

参照
公式サイト[→ http://www.ruby- ...
設計
まつもとゆきひろ

スキーム/scheme (lisp)

2009.01.26 - 2013.08.22
  

宣言型/関数型のブログラミング言語。

とても簡素なLISP。構文木がほぼそのまま露出しているというS式の特性に、クロージャ(=オブジェクト)の作成をふくめた、最小限のプログラミング機能を持たせている[※1]……これによりほぼ直感的に、目的に合った<言語>をシンプルなパーツから作っていくことができる。

※1
この言語は関数型とはいえ変数への代入を許すので、クロージャを状態を持つオブジェクトとして簡潔に定義できる。

ハスケル/haskell

2009.01.26 - 2013.08.22
  copyright: haskellwiki
reference: http://www.haskell.org/
  

宣言型/関数型のブログラミング言語。

純粋な関数型プログラミング言語を追求しつつ(副作用がなく高階関数が使える)、それを破綻させないかたちで、手続のあるプログラムも記述できる(副作用をふくむ計算一般をあらわすモナドの導入)。

純粋関数型言語の実装についてのアイデアはランディンのISWIM から始まるが(動く処理系は作られていないが公表は1966年、つまりベームらの構造化定理の発表と同じ年)、このハスケルもその流儀を受け継いでいる(ブロックを字下げで示す、という構文レベルの影響ふくめ)。いまやハスケルは各OSで簡単に動かすことができ、GHCの共同開発サイトもギットハブ(github)に移り、高速なウェブアプリケーション・フレームワークも登場した……ここまでくると教育というより実用という側面を強調したい気もするが、「関数型」は並列計算がらみで業務アプリケーション開発に採用されることはあっても、「純粋関数型」はけっきょく話題になるだけで終わるからなあ……

評価
★★★★☆(独創性)
★★★★★(美しさ)
★★★★☆(拡張性)
★★★☆☆(接続性)
参照
公式サイト[→ http://haskell.o ...

プロログ/prolog

2009.03.05 - 2013.08.22
  

宣言型/論理型のブログラミング言語。

制約処理の各種ライブラリを加えることで、命題の双方向性もそれなりに確保できる(制約型プログラミングへの拡張)。述語に日本語をあつかえるプロログ(swi-prolog, etc.)もある。

プログラミングの学習には、宣言型の体験も大切だと思う。命令型は「AをしてBをして」という命令の指示を繰り返すが、宣言型は「AであるBである」という事実の宣言を繰り返す。

子供は家族や親戚など人間関係に興味があったりするので(「ママのママがおばあちゃんでパパのパパがおじいちゃんで」)、典型的な家系図プログラムの方が興味を引くかもしれない:

ママ(よしこ,ここあ).
パパ(ひろし,ここあ).
ママ(きよこ,よしこ).
パパ(たつや,よしこ).
ママ(ちづこ,ひろし).
パパ(もりお,ひろし).
おばあちゃん(G,X):-ママ(P,X),ママ(G,P).
おばあちゃん(G,X):-ママ(P,X),パパ(G,P).
おじいちゃん(G,X):-パパ(P,X),ママ(G,P).
おじいちゃん(G,X):-パパ(P,X),パパ(G,P).

問い合わせる(推論させる)と:

> おばあちゃん(X,ここあ).
X = 'きよこ' ;
X = 'ちづこ' ;

XML&XSLT/xml & xslt

2009.02.21 - 2013.08.28
  

XMLはマークアップ言語をつくる言語。そのXMLの変換器/スタイルシートであるXSLTは、関数型プログラミング言語の流儀を引き継いでいる[※1]。

※1
XSLTの関数型言語としての特徴は、もともと副作用がないという点だけだったが(XSLT 1.0)、次の勧告(XSLT 3.0)でついに関数が第一級オブジェクトとなる予定……いずれにせよスタイルシートとしては十分に強力であり、XSLTがあるからこそ、(他の文書への変換元となる)独自仕様のXML文書を安心して作ることができる。W3C標準という点でも、他のプログラミング言語によるスタイルシートより安定している、といえる。

XML/XSLで文書を作り始めれば、いやおうなく<自分のための>文書のカタチを考えることになる。そしてその先にはRDF/OWLがあるので、こんどは共同体における<意味の共有>を考えることになる。

このウェブサイトもXMLで記述し、XSTLで生成している。

実体は(サイズはかなり大きいけれど)一枚のテキスト・ファイル……ここに(サイト内すべての)文章と(自分で決めた)タグを書き、ドキュメントやデータベースの構造を作っている。

XMLの解説(拙稿)[→ http://docmgt.xo ...
参照
公式サイト[→ http://www.w3.or ...