Skip to content
This repository has been archived by the owner on Dec 16, 2020. It is now read-only.

Candid #6

Draft
wants to merge 55 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
064a22f
consmenu module
matthewhammer Feb 19, 2020
986acea
engine-menu integration
matthewhammer Feb 25, 2020
32465f0
cargo fmt
matthewhammer Feb 25, 2020
a0ae598
initial menu semantics+io behavior; rust logs work; text-rendering el…
matthewhammer Feb 27, 2020
3cb0c07
cargo fmt
matthewhammer Feb 27, 2020
75fe881
menu semantics/io closer to working; many bugs remain
matthewhammer Feb 28, 2020
3ec5105
fix bug
matthewhammer Feb 28, 2020
b29ebe1
menu is closer to correct-looking; bugs remain
matthewhammer Feb 28, 2020
a00c9eb
another bug fix
matthewhammer Feb 28, 2020
1d022b9
menu looks better still, but bugs remain
matthewhammer Feb 28, 2020
85c3cc9
simplify types that represent the menu
matthewhammer Feb 29, 2020
fa34154
fill rendering; prettier menu
matthewhammer Feb 29, 2020
cbc2175
menu rendering with Left flow only works; menu semantics is incomplet…
matthewhammer Feb 29, 2020
6685a12
webshell renders node rects; shell and webshell look the same again
matthewhammer Feb 29, 2020
cdee1d4
fix AutoFill bug; refactor to avoid similar bugs; tweak paren glyphs
matthewhammer Feb 29, 2020
b0dffb8
menu is nicer looking
matthewhammer Feb 29, 2020
2c4d6f3
menu demo: ascend/descend works for prod/variant types
matthewhammer Mar 3, 2020
afbcfbb
clean up
matthewhammer Mar 3, 2020
537cd82
menu demo: bigger example; fewer footguns
matthewhammer Mar 3, 2020
ad11b9a
render number glyphs
matthewhammer Mar 3, 2020
1a8e818
rendering is easier to understand; but missing types
matthewhammer Mar 4, 2020
71b64a8
refactor render module; flow uses padding
matthewhammer Mar 4, 2020
1098244
distinguish intra/inter-flow pad measurement; show cursor pos
matthewhammer Mar 5, 2020
3a9aa60
remove temp logging
matthewhammer Mar 5, 2020
c151208
improved menu rendering
matthewhammer Mar 5, 2020
2412a01
2D nav directions match menu rendering
matthewhammer Mar 5, 2020
6320972
improved menu rendering: variant case
matthewhammer Mar 5, 2020
d223230
menu looks nice; matches my goals
matthewhammer Mar 8, 2020
05c73b8
warnings
matthewhammer Mar 8, 2020
56727e9
webshell and shell each run menu demo; look/act the same
matthewhammer Mar 10, 2020
77ffe92
README updates
matthewhammer Mar 10, 2020
d6fe459
stack of editor frames
matthewhammer Mar 13, 2020
a26e091
parse candid ast; convert into an interactive zqm menu
matthewhammer Mar 16, 2020
72fb05d
merge
matthewhammer Mar 16, 2020
944e71a
use candid syntax to boot menu
matthewhammer Mar 16, 2020
1c94cef
zqm can read CleanSheets .did file; but type decs not expanded yet
matthewhammer Mar 16, 2020
9efa6e7
expand var cases when possible
matthewhammer Mar 16, 2020
8cac00a
candid func type
matthewhammer Mar 16, 2020
7d8ab10
clean-up menu for Yan's identity test file
matthewhammer Mar 17, 2020
9bd0861
call replica (with encoded message) and decode response, partially
matthewhammer Mar 17, 2020
bb34248
ui shows log of messages
matthewhammer Mar 17, 2020
1ec1a2c
message log has durations
matthewhammer Mar 17, 2020
4c86b44
tweaks
matthewhammer Mar 17, 2020
efc48ce
smoother calc demo
matthewhammer Mar 18, 2020
9bbd189
expand README; SVG standard notes
matthewhammer Mar 18, 2020
6a27c27
support tuples
matthewhammer Mar 23, 2020
cdb73c3
int support
matthewhammer Mar 23, 2020
40ce1f7
drawing demo works!
matthewhammer Mar 24, 2020
ec0f4f6
render mazeGame example
matthewhammer Mar 27, 2020
46aa8dc
redraw display
matthewhammer Mar 27, 2020
732f26d
minor
matthewhammer Mar 27, 2020
9ccdd43
recognize text atts in candid; mazeGame looks much nicer
matthewhammer Mar 28, 2020
18b9d83
hacks
matthewhammer Apr 8, 2020
fde969d
fix bug
matthewhammer Apr 14, 2020
3569b5e
sdk/dfx crate updates
matthewhammer Apr 25, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 35 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Zoom Quilt Machine


A [game-engine](https://en.wikipedia.org/wiki/Game_engine)-like system
A [game-engine](https://en.wikipedia.org/wiki/Game_engine)-like system
written in [Rust](https://www.rust-lang.org/),
for the [Internet Computer](https://dfinity.org/faq).

Expand All @@ -21,12 +21,43 @@ Initially, we focus on [PoC](https://en.wikipedia.org/wiki/Proof_of_concept) con
- [ ] HTTP-client support: Connect to an IC canister holding saved media; send/receive media data to/from that canister.


### See also: Existing Zoom Quilts:
### See also:

This project draws inspiration from many sources.

#### Computer graphics standards (2D)

At its core, ZQM is an experimental computer graphics project
that draws inspiration from existing standards for 2D computer graphics.

For instance, the [SVG standard](https://www.w3.org/TR/SVGTiny12/) shares some goals and has some
comparable concepts and parts.

As a shared goal, both ZQM and SVG offer a human-computer language
for authoring portable 2D graphics with interaction (scripting).

##### SVG standard details:

- [Scalable Vector Graphics (SVG) Tiny 1.2 Specification](https://www.w3.org/TR/SVGTiny12/)
- [Basic data types](https://www.w3.org/TR/SVGTiny12/types.html)
- [DOM IDL, for interactive scripts](https://www.w3.org/TR/SVGTiny12/svgudomidl.html)

ZQM aspires to produce SVG media artifacts from its own media.

#### Media/content editors/IDEs

- https://p5stamper.com/


#### Existing "Zoom Quilts" (art projects):

The name _"Zoom Quilt Machine"_ was inspired by the experiences
of watching these art projects,
and imagining an answer to the question:
_"What tools could express the authorship of these quilts, as living data structures?"_:

- https://www.zoomquilt.org/
- https://zoomquilt2.com/
- https://arkadia.xyz/
- https://www.adultswim.com/etcetera/zoom/

#### Media/content editors/IDEs
- https://p5stamper.com/
7 changes: 7 additions & 0 deletions engine/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,14 @@ serde_bytes = "0.11"
serde_cbor = "0.9"
serde_json = "1.0"
hashcons = "0.1"
tokio = "0.2.10"
#sdl2 = "0.32"
delay = "0.1.0"

serde-idl = { path = "/Users/matthew/dfn/sdk/src/serde_idl" }
dfx_derive = { path = "/Users/matthew/dfn/sdk/src/dfx_derive" }
dfx_info = { path = "/Users/matthew/dfn/sdk/src/dfx_info" }
ic-agent = { path = "/Users/matthew/dfn/sdk/src/agent/rust" }

[lib]
name = "zqm_engine"
Expand Down
4 changes: 2 additions & 2 deletions engine/src/lib/bitmap.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ pub enum AutoCommand {
// Define a canonical editor for the structure in question. Again, use simplified, affine Rust.

/// the history-_independent_ state of the editor
#[derive(Debug, Serialize, Deserialize, Hash)]
#[derive(Clone, Debug, Serialize, Deserialize, Hash)]
pub struct EditorState {
/// created by an Init command; affected by Auto and Edit commands
pub bitmap: Bitmap,
Expand All @@ -62,7 +62,7 @@ pub struct EditorState {
// includes the command history, and any "pre-states" before initialization completes.

/// the history-_dependent_ state of the editoro
#[derive(Debug, Serialize, Deserialize, Hash)]
#[derive(Clone, Debug, Serialize, Deserialize, Hash)]
pub struct Editor {
/// full linear history of this bitmap's evolution, as a sequence of commands
pub history: Vec<Command>,
Expand Down
Loading