You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+32Lines changed: 32 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -57,6 +57,7 @@ orx-magic/
57
57
```
58
58
Note that inside `src` only `commonMain` is required.
59
59
60
+
60
61
## ORX README.md
61
62
62
63
Assuming you are creating an orx called `magic`, the readme should be formatted as follows:
@@ -88,6 +89,7 @@ Main content describing the usage of orx-magic goes here
88
89
This is specially useful for orx'es that produce graphical output, but less so for orx'es that interface
89
90
with hardware (like `orx-midi`).
90
91
92
+
91
93
## ORX build.gradle.kts
92
94
93
95
ORX `build.gradle.kts` files declare their dependencies and most follow the same structure.
@@ -107,6 +109,36 @@ See an [example](https://github.com/openrndr/orx/blob/master/orx-jvm/orx-dnk3/bu
107
109
108
110
The multiplatform build files may have blocks like `commonMain`, `commonTest`, `jvmTest`, `jvmDemo`, etc. to specify the dependencies for each case. See an [example](https://github.com/openrndr/orx/blob/master/orx-color/build.gradle.kts).
109
111
112
+
113
+
## I want to contribute to the documentation
114
+
115
+
There are various places where you can contribute without writing code. It will be greatly
116
+
appreciated by others trying to learn about OPENRNDR.
117
+
118
+
### Guide
119
+
120
+
The [guide](https://guide.openrndr.org/) is the first contact with OPENRNDR for most users.
121
+
[Learn how to work on the guide](https://github.com/openrndr/openrndr-guide/blob/dev/contributing.md).
122
+
123
+
### ORX API page
124
+
125
+
The [ORX API page](https://orx.openrndr.org/) needs some love too. The content is automatically
126
+
extracted from comments written in ORX's source code. It goes like this:
127
+
128
+
1. Fork the [ORX repo](https://github.com/openrndr/orx/), then clone your fork (so you
129
+
have a copy on your computer) and get familiar with OPENRNDR and ORX.
130
+
2. Find an undocumented section at https://orx.openrndr.org you want to explain.
131
+
3. Find the corresponding Kotlin file in your cloned repo and add missing comments. Read about
132
+
the [suggested style](https://developers.google.com/style).
133
+
4. Generate the API website locally to verify your changes look correct by running the following
134
+
command: `./gradlew dokkaGenerate -Dorg.gradle.jvmargs=-Xmx1536M`. This will create the
135
+
html documentation under `build/dokka/html/`.
136
+
5. Open the `build/dokka/html/index.html` in your web browser. If something looks off
137
+
tweak your comments. Note: the sidebar will be empty unless viewed through a web server.
138
+
You can launch one by running `python3 -m http.server --bind 127.0.0.1` in the html folder.
139
+
7. To continue improving the API go back to step 3, otherwise send a Pull Requests from your fork.
140
+
141
+
110
142
## Demos
111
143
112
144
ORX'es often include a `jvmDemo` folder. This folder should contain small programs demonstrating
Multiplatform, unless they deal with hardware or depend on binary libraries. Those are JVM-only.
9
+
10
+
## Usage
11
+
12
+
To make use of these extensions clone the [OPENRNDR template](https://github.com/openrndr/openrndr-template), uncomment the ones you need in its [build.gradle.kts](https://github.com/openrndr/openrndr-template/blob/master/build.gradle.kts) file, and reload Gradle. Cloning this repo is optional but useful to run the demos in each ORX folder, to study the source code, and to contribute to existing or new ORX'es.
|[`orx-compositor`](orx-compositor/)| Toolkit to make composite (layered) images using blend modes and filters. |
18
-
|[`orx-compute-graph`](orx-compute-graph/)| A graph for computation. |
19
-
|[`orx-compute-graph-nodes`](orx-compute-graph-nodes/)| A collection of nodes that can be used with `orx-compute-graph`. |
20
24
|[`orx-delegate-magic`](orx-delegate-magic/)| Collection of magical property delegators. For tracking variable change or interpolate towards the value of a variable. |
21
25
|[`orx-easing`](orx-easing/)| Easing functions for smooth animation or non-linear interpolation. |
22
26
|[`orx-envelopes`](orx-envelopes/)| ADSR (Attack, Decay, Sustain, Release) envelopes and tools. |
|[`orx-mesh-generators`](orx-mesh-generators/)| 3D-mesh generating functions and DSL. |
42
+
|[`orx-mesh-noise`](orx-mesh-noise/)| Generate random samples on the surface of a mesh <!-- __demos__ --> ## Demos ### DemoMeshNoise01 |
37
43
|[`orx-no-clear`](orx-no-clear/)| Provides the classical "draw-without-clearing-the-screen" functionality. |
38
44
|[`orx-noise`](orx-noise/)| Randomness for every type of person: Perlin, uniform, value, simplex, fractal and many other types of noise. |
39
-
|[`orx-obj-loader`](orx-obj-loader/)| Simple loader for Wavefront .obj 3D mesh files. |
45
+
|[`orx-obj-loader`](orx-obj-loader/)| Simple loader and saver for Wavefront .obj 3D mesh files. |
40
46
|[`orx-palette`](orx-palette/)| Provides hundreds of color palettes. |
41
47
|[`orx-parameters`](orx-parameters/)| Provides annotations and tools for turning Kotlin properties into introspectable parameters. Used by [`orx-gui`](../orx-jvm/orx-gui/README.md) to automatically generate user interfaces. |
42
48
|[`orx-property-watchers`](orx-property-watchers/)| Tools for setting up property watcher based pipelines |
|[`orx-shapes`](orx-shapes/)| Collection of 2D shape generators and modifiers. |
47
53
|[`orx-svg`](orx-svg/)| SVG reader and writer library. |
48
54
|[`orx-temporal-blur`](orx-temporal-blur/)| Post-processing temporal-blur video effect. CPU intense, therefore not intended for use with the `ScreenRecorder` extension or other real-time uses. |
55
+
|[`orx-text-on-contour`](orx-text-on-contour/)| Writing texts on contours. |
49
56
|[`orx-text-writer`](orx-text-writer/)| Writing texts with layouts |
50
57
|[`orx-time-operators`](orx-time-operators/)| A collection of time-sensitive functions aimed at controlling raw data over-time, such as Envelope and LFO. |
51
58
|[`orx-timer`](orx-timer/)| Simple timer functionality providing `repeat`, to run code with a given interval and `timeOut`, to run code once after a given delay. |
|[`orx-osc`](orx-jvm/orx-osc/)| Open Sound Control makes it possible to send and receive messages from other OSC enabled programs in the same or a different computer. Used to create multi-application or multi-device software. |
74
81
|[`orx-panel`](orx-jvm/orx-panel/)| The OPENRNDR UI toolkit. Provides buttons, sliders, text, a color picker and much more. HTML/CSS-like. |
75
82
|[`orx-poisson-fill`](orx-jvm/orx-poisson-fill/)| Post processing effect that fills transparent parts of the image interpolating the edge pixel colors. GPU-based. |
83
+
|[`orx-processing`](orx-jvm/orx-processing/)| orx-processing is a module designed to facilitate seamless type conversions between Processing's types and OPENRNDR's types. It provides utilities and methods that allow developers to integrate the two graphics frameworks effectively by bridging the gap between their respective data structures. |
76
84
|[`orx-rabbit-control`](orx-jvm/orx-rabbit-control/)| Creates a web-based remote UI to control your OPENRNDR program from a mobile device or a different computer. Alternative to `orx-gui`. |
77
-
|[`orx-runway`](orx-jvm/orx-runway/)| Interfaces with the RunwayML machine learning library that provides features like motion capture, image synthesis, object recognition, style transfer and more. More info at [runwayml.com](https://runwayml.com/). |
78
85
|[`orx-syphon`](orx-jvm/orx-syphon/)| Send frames to- and from OPENRNDR to other applications in real time using _Syphon_ for Mac. |
79
86
|[`orx-video-profiles`](orx-jvm/orx-video-profiles/)| GIF, H265, PNG, Prores, TIFF and Webp `VideoWriterProfile`s for `ScreenRecorder` and `VideoWriter`. |
0 commit comments