CodeLab近况

马克·吐温在给朋友的信中写道:

我没有时间给你写一封短信,我只能给你写一封长信。

codelab.club近期忙于构建neverland、制定与外部的合作框架、扩大codelab-adapter的连接范围、完善基础设施以及探索什么是未来的创造工具。

这是个愉快的旅程,途中有许多有趣的收获与发现,我们希望抽些时间,做一番梳理,让关心CodeLab的人能了解到我们的近况与进展。我们也将汇报近期的困惑与阻碍,希望能得到热心之人的帮助。

neverland

neverlandCodeLab的办公室与活动空间。此前在关于CodeLab中对它做过介绍。

CodeLab的办公室是开放的, 你可以在任何时间来找我们玩,

neverland名字来自《小飞侠彼得·潘》,是故事中的一座海岛。在永无乡里,人们永远长不大。

后来,他领着我飞到了永无乡(neverland),那儿还有仙子,还有海盗,还有印第安人,还有人鱼的礁湖;还有地下的家,还有那间小屋子。 --《小飞侠彼得·潘》

目前我们正在将neverland付诸实践。设计方案已定稿,目前正在装修中。

neverland的整体规划和设计元素由CodeLab的志愿者共同谈论确定,之后由独立设计师@CJ为我们完成设计方案。

neverland的空间规划经过一次大的调整,起初,我们倾向于将空间划分为办公区域和活动区域。后来经由商议,确定去除任何的分割。让活动参与者与codelab的工作人员紧密接触,让用户参与到产品的开发之中,这是《终身幼儿园》给我们的启发。

neverland的设计方案,经历了若干次讨论、汇集意见、形成共识的过程,最终形成的文档放在Google Docs上。

codelab是一个开放的组织,包括我们的思考与讨论本身也作为开放资源的一部分,欢迎外部的建议和批评。

neverland是我们的第一个里程碑,它远不只是一个办公室,

我们在其中办公,在其中编程,在其中玩乐,在其中做一些有趣的探索和创作。

我们在其中生活、冒险与创造,也愿意分享这其中的点点滴滴,之后可能制作为课程、故事短片、情景剧或是直播。

neverland设计方案的确定,很能体现CodeLab的协作模式。我们在此梳理和再现我们的协作过程。

这是neverland的第一个概念方案:

codelab的志愿者们对此并不满意。

@刘鑫提到:

读书角这种风格是不是现在比较流行的风格?可能是我读书不够多,感觉这种实用性不够。

隐私问题值得注意,如果空间中有摄像头,应该告知参与者。若对外直播活动的过程,可以考虑将摄像头置于活动桌上方,人不出镜, 避免侵犯隐私。

@程晨建议:

根据neverland可能出现的场景来规划布局。

@曾铮建议:

空间分布可以整合,比如休息区(这个不止是家长休息,孩子可能也得休息)应该和饮食区、读书区合一。舒服的沙发旁边就是食品、饮料和书,工作者也可以过去休息,它是一个综合休息区。展示区的空间如果可以利用起来更好,活动空间就是最好的展示。考虑空间融合与空间复用。

这些建议成为neverland第二版草案的空间规划策略:

在这个版本中,保留了@陈海权提出的阶梯概念,并扩展了它的功能。@陈海权展示的汕头图书馆的设计令人印象深刻。

@李懿建议将阶梯的位置挪到不规则墙面区域,如此一来颇有阶梯教室的味道,图书角成为了一个阅读/休息/观众席 综合区。@李懿进一步提议我们采用日式风格,就像Apple Store,弱化环境,强调空间中的物与人。

一旦有了阶梯教室的概念,很自然地,对面墙壁适合放置投影设备。@罗云建议采用75寸的高清电视,而不是投影仪。

@陈海权提议充分利用阶梯的空间,将柜子置于阶梯之后,一直往上延伸,于是天花就成为必要。天花方案最终采用了@罗云的提议,采用简约整洁的风格,保持风格的统一。

既已决定采用日式风格,@罗云进一步建议说室内设施应该与环境融合,不使用时不应突兀出来,同时他提议取消形象区,彻底打通整个空间,贯彻开放的理念,但又希望能展示CodeLab的形象。之前为我们出方案的设计公司无法给出好的解决方案,于是我们另请了独立设计师@CJ来为我们重新设计。

这是下一版的草图:

以及最终的渲染图:

其中电视两边放置可以书写的不锈钢板,它同时又充当镜子,来放大空间。@陈爱华最初提议在空间里放置可以写字的玻璃板,之后@陈海权建议改为不锈钢板。

@陈爱华建议风格上点缀些俏皮元素,这个概念最终演变为设计师@CJ为我们带来的若干小巧点缀。@陈爱华还有许多有趣而实用的建议:

彩色积木可以任意组装成书桌、书架、展示台等等。coding的无趣和偏见就是工业灰,我们应该尽可能打破这个。

之后我们购置小物品时,会按照这个建议,尽量选择积木风格的物品。

升降桌也由她提出(她目前人在硅谷):

硅谷的标配是升降桌 可以调节高度的 宜家有便宜版本

关于展示区她也给出了很棒的建议:

除了工作、协作、学习、创造的功能,我们也提供一个给孩子们展示的空间!比如将绘画作品制作成丝巾、文化衫,我个人是很喜欢创造+时尚结合起来!甚至一段有意思的python代码 都可以打印到衣服上。

万物积木化

codelab-adapter是codelab.club构建的基础设施之一。codelab-adapter目标是使万物积木化,帮助没有编程经验又热爱创造的人,更容易地去实现他们的创意。

下边梳理一下,我们近期在这块的工作。

积木化AI

AI方面,我们优化了图像分类器的性能(基于MobileNet),增加了标签(label)的数量(为了支持联想研究院的小伙伴制作的演示案例)。

在这个例子中,使用不到10个积木训练好神经网络后,制作了《闭眼,请关灯》:当kindle/书籍被翻开时,开灯阅读;当合上Kindle/书籍,闭上眼思考时,自动熄灭灯光。

此外,我们将姿态神经网络变为了积木:

这个例子叫《鼻梁上的老花镜》,它是一个增强现实(AR)作品。通过姿态神经网络我们可以拿到面部地标的数据,你的鼻子、眼睛、耳朵、嘴巴都被积木化了,你可以组合这些积木来创作。

利用姿态神经网络,也可以将肢体的运动变为输入信号,来制作创意作品或体感游戏。

上边的例子属于计算机视觉(CV),人工智能另一大应用是自然语言处理(NLP),下边是我们近期与NLP相关的一些例子:

《hi,渡边君》是一个聊天机器人(Chatterbot),我们在Python中构建本地Chatterbot(不需要云端支持),之后将其积木化。这个例子展示了我们利用Python来拓展Scratch的设计。通过Python你能极大拓展Scratch的能力,这部分后边细说,我们在这块做了很多有趣的探索。

codelab在自然语言处理(NLP)这块的另一项工作是,利用积木构建智能音箱:

利用20个积木不到,你就构建了一个自己的智能音箱,它使用一个Python插件来接入云端Chatterbot,这个插件我们已经开放出来了。我们的所有插件都是开放的。

积木化开源硬件/平台

说完我们在积木化AI这块的工作,接下来聊聊,积木化开源硬件这块的工作。

我们接入了掌控板,掌控板是一块优秀的国产开源硬件,产品层面模仿了micro:bit,但做了很多增强:更好的媒体表现力(屏幕、喇叭)、更强的连接能力(WiFi)

接入四轴飞行器,目前支持Parrot三个系列的四轴飞行器:

  • mambo
  • Bebop
  • Swing

这个例子展示了简单组合积木所带来的威力:通过拼搭leap motion积木和四轴飞行器积木,我们就可以利用手势指挥四轴飞行器。

接入Vector!这是我们今年的里程碑之一,Vector代表着机器人的一种可能的未来。它是Cozmo的下一代。在我看来,Cozmo/Vector是划时代的AI玩具,它甚至成为了CMU(卡内基梅隆大学)教学机器人的教具,如Dave Touretzky教授(他是cozmo死忠粉)在社区里说的: cozmo在很多方面,至今独孤求败。

codelab.club计划使用Vector进行AI教育。codelab-adapter是全球第一个将Vector积木化的工具,我们甚至赶在了官方的前边。今年上半年anki(Vector所属的公司)就推荐社区里关心教育的用户,使用codelab-adapter作为将Cozmo接入教育平台的工具。

家庭娱乐设备

Switch颠覆了人们对游戏机的看法,Switch被看作家庭娱乐中心,它鼓励社交、合作和创造。Switch Labo的推出,更是掀起了全球的尖叫与狂欢。

codelab-adapter的目标是将万物积木化,我们当然不会错过Switch Labo这种充满创意的事物。

在这个例子中,我们利用Switch的外围设备(模型枪)来击灭房间里的灯。利用积木你可以把房间改造为战场。

在这个例子中,我们将Switch labo的瓦楞纸小房间与现实的大房间连接在一起。

社交媒体

我们接入了微信。

不喜欢微信的聊天界面?没关系,在Scratch中制作自己的聊天界面:

天冷不想起床关灯?没关系,发一条微信消息就行:

更多

更多的的演示视频参考codelab-adapter docs gallery

开放生态

codelab-adapter希望打造一个开放的生态,如我们在文档里说的:

使用codelab-adapter,你可以轻松将任何有趣的东西接入Scratch3.0(只需几行代码),接入之后你便能用Scratch3.0的积木来操控它,让它与任何接入Scratch3.0的物体互动。无论是来自现实世界的物体,还是来自虚拟世界的AI或动画角色,都能彼此互动,我们不想针对某个硬件产品发布一个客户端,我们相信创意来自广泛的连接,我们致力于做一个中立的东西,将Scratch3.0连接到更广阔的领域,我们想做到宽围墙。

我们鼓励公司与开发者们加入这个生态,codelab-adapter甚至允许你将AI的能力赋予给十几年前生产的玩具

理论上,我们能将绝大多数的玩具都积木化,并接入进来,包括你童年的那些玩具。正是这点引起了很多公司的兴趣。我们在后边将谈论codelab.club与企业的合作框架。

增强插件系统

为了方便开发者和公司将自己的设备更容易地接入,我们完善了文档;增强了Scratch与Python的连接: Python与Scratch的双向通信,给开发者更多的自由。

这个例子展示了,如何将Python写的检测面部关键点的程序积木化到Scratch中。

服务Scratcher

对于Scratcher,我们也鼓励他们使用Python拓展Scratch的能力,我们为此构建了两个通用插件:

来简化Scratcher上手Python的门槛。这部分我们所做的思考都分享了出来:教育层面的思考, 欢迎交流:)

对了,codelab-adapter的所有插件都是开放的: scratch3_adapter_extensions

星辰大海

我们目前做的这些,从外部的反馈(包括技术社区和教育社区)来看,大家觉得还挺酷的。但我们想做的远不止这些。

在教育上我们追随Jean Piaget、Alan Curtis Kay、Seymour Papert和Mitchel Resnick。

在技术上,Dynamicland是我们希望驶向的星辰大海。他们对计算和创造的未来做了最令人震惊的想象与探索。

关于这块,我之前写了两篇文章:

兼容和接入Dynamicland是我们未来的里程碑。

合作框架

由于codelab-adapter的开放性与连接能力,不少公司希望能与我们合作,将产品接入到codelab.club之中。

接入的设备,将免费得到codelab.club提供的语音识别、机器视觉、空间编程的能力(为整个房子编程),同时也得到与生态中的所有设备互动的能力,无论是控制飞行器还是与Vector交互。你不必做所有的这些,你只需做你擅长的,与万物连接的任务,交给我们。

codelab.club是个非营利组织。我们最关心的是使命而不是商业价值。我们的使命是:

传递编程的乐趣,帮助人们成为数字时代的创作者。

那我们为何愿意与商业公司合作呢?考虑到长期的发展,如果我们通过与商业公司合作,得到更多企业的捐赠,这对我们扩大自身,服务更广阔的人群将有帮助。

前提是这种合作不违背我们的使命,合作方的产品必须能够帮助用户去创造,符合我们认同的理念,合作才成为可能。就像乐高与Scratch的合作。彼此促进,共同为用户带来更大的创造可能。

合作的收益永远会置于我们的使命之下。

任何的合作都会经过codelab.club的内部评估,直到我们认为理念上一致,才进入下一步。我们对教育的看法和理念,《终身幼儿园》做了最为清晰的阐述。

使用codelab-adapter

近期我们将推出codelab-adapter的社区版,在社区版中,任何公司可以利用codelab-adapter将AI、开源硬件、物联网接入到自己的平台中,无论平台基于什么技术,我们都将兼容,而不必局限在Scratch3.0中。

社区版允许商业使用。

热心的你

热心的你如何参与进来呢?

codelab.club还处在初期阶段,我们需要具备各种技能的志愿者。

近期,codelab计划重新设计LOGO,用于制作一些纪念品,赠与志愿者。我们期待有热心的设计师与我们同行。

此外,我们陆续可能有一些外部合作,准备申请一些专利。如果你有技术领域的知识,又具备法律知识,愿意成为codelab.club的法律顾问,随时联系我们。

技术这块,我们计划在1月份开始构建线上社区,技术栈选择Django/React,欢迎愿意加入的工程师。

如果你身边恰好有这样的朋友,Ta和你一样热心肠、喜欢创造,欢迎帮我们牵线搭桥。

你随时可以过来找我们玩, 带着你的创意,我们一起实现它。我们有各种有趣的玩具,neverland是给所有人准备的游乐场。

如果童年意味着趣味、创造、好奇与天真。neverland的志愿者们并不曾长大。

我们喜欢刘瑜在《送你一颗子弹》中关于天真的这段讨论:

我相信,大学精神的本质,并不是为了让我们变得深奥,而恰恰是恢复人类的天真。天真的人,才会无穷无尽地追问关于这个世界的道理。关于自然、关于社会。大学要造就的,正是达尔文的天真,爱因斯坦的天真,黑格尔的天真,顾准的天真。也就是那些“成熟的人”不屑一顾的“呆子气”。“成熟的人”永远是在告诉你:存在的就是合理的,而合理的就是不必追究的,不必改变的。 

欢迎天真的人们,neverland希望成为你的终身幼儿园。