Skip to content

Commit a6c94e5

Browse files
authored
Update README.md
simplified page, updated links and added badges
1 parent 3903b03 commit a6c94e5

File tree

1 file changed

+7
-103
lines changed

1 file changed

+7
-103
lines changed

README.md

+7-103
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,13 @@
1+
[![Documentation](https://img.shields.io/badge/documentation-website-yellow?logo=markdown&logoColor=yellow)](https://docs.adacad.org/)
2+
[![Youtube Channel](https://img.shields.io/badge/youtube-channel-red?logo=youtube&logoColor=red)](https://www.youtube.com/watch?v=nhHUUaMHx_Y&list=UULFRK7RAt8Z7Nw1u3aJ0FyPuQ)
3+
[![Access](https://img.shields.io/badge/use-adacad.org-blue)](https://adacad.org)
4+
15
# AdaCAD
26
AdaCAD is a parametric design tools for making woven drafts. It supports a designer in creating drafts by connecting different operations into a model or pipeline that results in drafts. It currently supports outputs and representations for Jacuqard, Floor, and Direct-Tieup Loom.
37

48
- stable release of the tool at [https://adacad.org/](https://adacad.org/).
5-
- beta release of our most recent developments at [https://adacad-beta-fa4dc.web.app/](https://adacad-beta-fa4dc.web.app/)
9+
- beta release of our most recent developments at [https://adacad-4-1.web.app/](https://adacad-4-1.web.app/)
610

7-
For more information about the project and user guides, visit [https://adacad.unstable.design/](https://adacad.unstable.design/) or our [YouTube Channel](https://www.youtube.com/playlist?list=PLy2lIjrar_02XiqfJG8kLpeWOyCtDXeFJ)
8-
9-
AdaCAD does not require any installing or downloading anything on your device, just [open the app in your browser](https://adacad.org/) (same link as above).
10-
11-
We invite anyone interested to hack on AdaCAD, should you wish to dive into the code. If that describes you, read on!
12-
13-
## Development Setup
14-
AdaCAD is built with Angular, a web development framework for progressive web apps. This project was generated with Angular CLI version 7.3.8.
15-
16-
To ask questions, make suggestions, and get support, consider posting to the [AdaCAD Forum](https://groups.google.com/u/1/g/adacad-forum)
17-
18-
### Prerequisites
19-
- [Node.JS](https://nodejs.dev/learn/how-to-install-nodejs) and [Node Package Manager (npm)](https://nodejs.dev/learn/an-introduction-to-the-npm-package-manager)
20-
- Intermediate JavasScript/TypeScript – if you know JavaScript but not TypeScript, it should be fairly easy to pick up [TypeScript basics](https://www.typescriptlang.org/docs/handbook/2/basic-types.html).
21-
- Basic HTML/CSS – enough to understand how these file types are structured and interact with scripts
22-
- The Angular CLI requires a minimum Node.js version of either v12.20, v14.15, or v16.10.
23-
24-
### Installation for developers
25-
1. Clone this repository onto your local hard drive.
26-
2. Install Angular
27-
3. Open your terminal on the local root directory and run `npm install` to download the requirements. This can take a while.
28-
4. Once installed, run `ng serve` in the terminal and wait for Angular to compile the app. It should tell you once it's ready. If your system doesn't recognize `ng serve`, make sure that you're in the app and run `node_modules/.bin/ng serve`
29-
5. Navigate to `http://localhost:4200/` and you should see AdaCAD!
30-
31-
## Development Notes
32-
There are three core modules in this repo:
33-
34-
- Core: contains components, services, directives, etc. that are used by both weaver (individual draft view) and mixer (generative workspace) modules. Changes to core will affect both deployments and should be checked before pushing.
35-
36-
- DraftDetail: contains all components, services, directives, etc. that are used in "Detail" mode for a given draft. This view supports designing on a simulated loom and viewing yarn paths.
37-
38-
- Mixer: contains all components, services, directives, etc. that are used to design and control the AdaCAD Mixer. This view supports more freeform and parametric experimentation on stitch structures.
39-
40-
## Developer Documentation
41-
You can use view automatically generated documentation of our project at [http://adacad.unstable.design/AdaCAD/](http://adacad.unstable.design/AdaCAD/).
42-
43-
### Code organization
44-
The information here references Angular documentation, such as this page on [Angular concepts and architectural patterns](https://angular.io/guide/architecture).
45-
* An Angular app like AdaCAD is organized into **modules** (bundles of functionality), each of which has their directory in `src/app/<module-name>`. The modules are currently `core`, `mixer`, and `weaver` as described previously.
46-
* Each module provides a "view" into the user's design process. The building blocks of these views are Angular **components** that display some of the data that the user manipulates when designing. Each component has its own subfolder within the module.
47-
* Components don't handle the actual data manipulation, such as editing drafts or logging the user's history of design operations. For that, we have Angular **services**, which components use as dependencies. Each module has a `provider` subdirectory (e.g. `src/app/core/provider`) that holds the relevant services.
48-
* Many of the files in the repository are automatically generated by the Angular CLI to make each component or service function properly. See the Code scaffolding section for some useful commands when making a new entity.
49-
50-
### Important Files, Vocabulary, and File Locations
51-
AdaCAD is a large (and growing) application and chances are that you will only need to touch a few files when implementing or augmenting it to your own needs. We are slowly migrating the code from impertive/object-oriented styles to functional/reactive styles, so there is a mixture of styles in this base. Here, we will list the files in which you can find core information or action points for the program:
52-
53-
54-
![a labeled diagram of the components of AdaCAD as they are experienced by the viewer](https://github.com/UnstableDesign/AdaCAD/blob/master/src/assets/AdaCAD_Terminology.png)
55-
56-
57-
#### Core Data Types:
58-
You can find a description of all of the core datatypes used in AdaCAD at [/core/model/datatypes.ts](https://github.com/UnstableDesign/AdaCAD/blob/master/src/app/core/model/datatypes.ts).
59-
60-
* Cell - This is a single cell or square within the draft. It has two boolean values, one describing the position of the heddle as up/raised or down/lowered, and the second relating to whether or not a weft travels over the warp at this location, which is required for inlay weaving and certain elements of simulation. This value can be set/true or unset/false.
61-
62-
* Drawdown - A drawdown is the actual pattern of cells and values that make up the weaving draft. For the purposes of computation the cell at \[0][0] always corresponds to the top left corner of the draft in memory.
63-
64-
* Draft - A draft stores the drawdown as well as arrays mapping each warp/weft in the draft to a unique material_id, and system_id. Each draft has a unique id, which allows us to crosslink draft inforamation between the model (data) and view components.
65-
66-
* Loom - A Loom is simply a collection of arrays representing the threading, tieup and threadling.
67-
68-
* LoomUtil - A loom utility describes a particular kind of loom (jacquard, direct tieup, etc.) and contains all the functions neccessary for producing a threading, tieup and treadling from a drawdown and vice versa.
69-
70-
* Tree - The tree is a data representation of the relaitonships between operations and drafts within the mixer. It is the "brain" of AdaCAD and stores all information relating to screen position of the design components, their current parameter vaues, and their parent/child relationships to other on screen design elements.
71-
72-
* Operation - An operation holds all data required to compute specific chagnes to an input draft. The operation object holds information about the kind of data it can receive and how it manipulates that data. All operations available in AdaCAD are described in: (stored in [/mixer/provider/operation.service.ts](https://github.com/UnstableDesign/AdaCAD/blob/master/src/app/mixer/provider/operation.service.ts)). Adding a new operation at this location adds it to the entire app, without requiring the user to make any custom UI elements for the operation.
73-
74-
75-
#### UI Types:
76-
The mixer describes the parametric design view of the AdaCAD interface. This view consists of the following:
77-
78-
* Palette - this is the visual space of all the design elements in the mixer
79-
80-
* Subdraft - this is the view that holds the visual represeention and provided options on any draft on view in AdaCAD
81-
82-
* Operation - this is the view that holds the visual representation of each operation. The operation consists of subtypes: Inlet, which governs the type of input this operation can receive, Parameter, which describe how to represent and validate parameter inputs on screen. The data used to generate inlets and parameters is described by the operation (stored in [/mixer/provider/operation.service.ts](https://github.com/UnstableDesign/AdaCAD/blob/master/src/app/mixer/provider/operation.service.ts))
83-
84-
* Connection - this is the visual represenation of the connection between drafts and operations.
85-
86-
* Weaver - the weaver is separate module from the mixer which stores all the UI features that the user sees and uses when they expand or "Fine Tune" a draft.
87-
88-
89-
90-
91-
## Angular CLI Tips
92-
93-
### Code scaffolding
94-
The Angular CLI provides built-in commands to generate the utility files for components, services, and other such things categorized as "**schematics**". These files will be generated in the current directory of the terminal, so navigate to the appropriate subdirectory first.
95-
* New component:
96-
1. Make a subfolder in the appropriate module named `<component-name>`
97-
2. In this subfolder, run `ng generate component <component-name>`
98-
* New service:
99-
1. In the appropriate module's `provider` subfolder, run `ng generate service <service-name>`
100-
* For other options, refer to the [Angular CLI documentation](https://angular.io/cli/generate).
101-
102-
### Development server
103-
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you save changes in any of the source files.
104-
105-
### Build
106-
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.
11+
For more information about the project and user guides, visit [https://docs.adacad.org](https://docs.adacad.org/) or our [YouTube Channel](https://www.youtube.com/playlist?list=PLy2lIjrar_02XiqfJG8kLpeWOyCtDXeFJ)
10712

108-
### Further help
109-
To get more help on the Angular CLI, use `ng help` or go to the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
13+
We invite anyone interested to hack on AdaCAD, should you wish to dive into the code. If that describes you, you can find support in the "Develop" section of [https://docs.adacad.org]([https://docs.adacad.org/](https://docs.adacad.org/docs/howtodevelop/install))

0 commit comments

Comments
 (0)