跳转到主要内容

参数化对象之间的可视化数据流编程。

项目描述

# Boxflow

*参数化对象之间的可视化数据流编程**

Boxflow允许通过连接和可视化
参数化对象进行可视化编程。Boxflow旨在支持的参数化对象类型示例包括
参数参数和数字生成器、
[Imagen](http://ioam.github.io/imagen/) 模式,以及未来的
[HoloViews](http://www.holoviews.org) 元素。

目前仍在开发中,但许多基本功能现在已经到位。请注意,由于这是一个我在业余时间进行的个人项目,因此开发可能较慢。

[![示例用法 style='width:600px'](./boxflow/assets/example.png)](index.html)

*推荐浏览器: 启用ES6的Chrome (chrome://flags/#enable-javascript-harmony)*

## 交互

+ 滚动上下:放大/缩小
+ '+'/'-' : 放大/缩小
+ 拖动空白空间:平移视图。
+ 'H' : 隐藏GUI面板。
+ 点击节点:查看节点参数。
+ 拖动节点:移动节点。
+ 拖动输出端口:创建连接。
+ 在突出显示(红色轮廓)上按 'd'/'退格键':删除对象


## 功能

- 可视数据流编程
- 客户端/服务器架构,允许在线部署。
- 客户端和服务器端均支持扩展。
- 可视化组合和操作 imagen 模式生成器。

## 开发者指南

- 启动服务器。

```sh
$ python server.py
```

要从es5目录提供ES5 JavaScript(需要使用Babel更新)

```sh
$ python server.py -es5
```

- 或者

```
$ python -c "from boxflow.server import main; main('js')"
```

### Babel和ES5

本项目使用 ES6 语法编写,基于 Chrome(已启用这些实验性语言功能)。Firefox 的最新版本支持 ES6,但其他功能需要 ES5。要更新 "es5" 目录

- 全局安装 Babel

```sh
sudo npm install -g babel-cli
```
- 安装 ES5 'preset'

```sh
npm install babel-preset-es2015
```

- 更新 es5 目录的内容

```
babel ./boxflow/js/ --out-dir ./boxflow/es5/
```

## 关于代码

- 使用现代 JavaScript(ES6)编写
- 最小 JS 依赖:[fabric](http://fabricjs.com/),[watch.js](https://github.com/melanke/Watch.JS/),[underscore.js](https://underscorejs.node.org.cn/) 和 [dat.gui](https://github.com/dataarts/dat.gui)。
- 最小 Python 依赖:[tornado](https://tornado.pythonlang.cn/en/stable/),[pillow](https://python-pillow.org/),[Imagen](https://ioam.github.io/imagen/)。


## 目标

+ 提供对 Jupyter 笔记本环境的替代方案。
+ 提供丰富的、视觉化的参数化对象操作方式。
+ Param: 数量生成器,参数化类。可能是 paramnb 的替代品。
+ HoloViews: 元素、HoloMaps、布局、操作。
+ Imagen: 模式生成器。
+ 声明性规范(JSON),可以从 Python 或浏览器中加载。
+ 允许在客户端定义自定义节点(通过定义参数化类)。
+ 个人目标:学习 ES6 和现代、惯用的 JavaScript。

## TODO

- 使用 JQuery 仅一行代码(可以删除依赖)。
- 强制 DAG 图 + 端口类型检查。
- 保存/加载功能。
- 确保与 Python 3 兼容。
- 个人目标:学习 ES6 和现代、惯用的 JavaScript。

许可证
----

BSD 3-clause 许可证。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

boxflow-0.0.4.tar.gz (1.4 MB 查看哈希值

上传时间 源代码

支持者