A Web-based IDE for Generative...
Transcript of A Web-based IDE for Generative...
Generative Design
2
Exemplos de GD em arquitetura.3
IDEs for Generative Design
4
5
6
7
IDE in the Web
8
IDE como aplicação
web
9
10
11
12
13
14
15
Problem
16
Requirements
No installation or updates
Help the programming process
Traceability
Immediate feedback
Intuitive parameter adjustment
Integrate into the architect’s workflow
Luna Moth
17
18
Luna Moth - Demo
19
Workflow Integration
20
21
22
Performance Evaluation
23
Performance Evaluation
24
Examples that can be generated by programs
Compared with other IDEs
Grasshopper, Rosetta, OpenJSCAD
25
Future work
Better integration
faster
more design tools
Better development experience
illustrated programming
timetable traceability
code completion
error reporting
Collaboration26
Contributions
27
Luna Moth: A Web-based Programming Environment for Generative Design
35th eCAADe conference: Sharing of Computable Knowledge (accepted)
Luna Moth: Supporting Creativity in the Cloud
37th ACADIA conference: Disciplines & Disruption (submitted)
Thank you
28
29
Implementation
30
Rendering
31
Rendering
32
Convert Render
Results Three.js Scene Image
function sphereCube(w, sphR) {
let sph = sphere.byRadius(sphR);
return [
translate(sph).byXYZ(0, 0, 0),
translate(sph).byXYZ(w, 0, 0),
translate(sph).byXYZ(w, w, 0),
translate(sph).byXYZ(0, w, 0),
];
}
let g = sphereCube(10, 1);
g;
Run
Traceability
33
Camera
Ray
Rendered
Object
Result
ValueAST Node Highlight
Text
CoordsAST Node
Expression
Results
Rendered
ObjectsHighlight
Running for Traceability
34
Running for Traceability
35
function sphereCube(w, sphR) {
let sph = sphere.byRadius(sphR);
return [
translate(sph).byXYZ(0, 0, 0),
translate(sph).byXYZ(w, 0, 0),
translate(sph).byXYZ(w, w, 0),
translate(sph).byXYZ(0, w, 0),
];
}
let g = sphereCube(10, 1);
g;
Parser Transform
Generate Run
function sphereCube(w, sphR) {
let sph = sphere.byRadius(sphR);
return [
translate(sph).byXYZ(0, 0, 0),
translate(sph).byXYZ(w, 0, 0),
translate(sph).byXYZ(w, w, 0),
translate(sph).byXYZ(0, w, 0),
];
}
let g = sphereCube(10, 1);
g;
Program ASTTransformed
AST
Instrumented Program
ResultsExpr -> Results
Literal Adjustment
36
0.19 -> 0 19 -> 019 -> +6 025 -> 0.25
str -> str -> int -> int -> str
Workflow Integration
run without traceability -> call operations on Rosetta Remote Service (as in RPC)
37
RunGenerate
in Tool
Start
Service