Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Papaltine/ProtoGraph: Difference between revisions

From Resonite Wiki
Papaltine (talk | contribs)
Beta
Papaltine (talk | contribs)
mNo edit summary
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''ProtoGraph''' is a declarative programming language designed to work with [[ProtoFlux]] in the [[Resonite]] ecosystem. It allows creators to write logic in a clean, readable text format that compiles directly into ProtoFlux nodes—making it easier to build, test, and maintain complex systems.
[[ProtoGraph]]
 
== Overview ==
* '''Paradigm''': [[wikipedia:Dataflow_programming|Dataflow]]
* '''Family''': ML: Caml: OCaml: F#
* '''Designers''': [[User:Papaltine|Papaltine]], [[User:Kittysquirrel|Kittysquirrel]]
* '''Developer''': [[User:Papaltine|Papaltine]]
* '''Stable Release''': N/A (Currently in Beta)
* '''License''': AGPLv3
* '''Target Platform''': Resonite (via ProtoFlux)
* '''File Extension''': <code>.pg</code>
* '''Compiler Tool''': <code>flux-sdk</code>
* '''Repository''': [https://git.samsmucny.com/ssmucny/Flux-SDK Flux SDK]
* '''Compiled Format''': <code>.brson</code> (Resonite Record)
* '''Influenced by''': F#, Elm, Python, Haskell, VHDL, Odin, Go
 
== Who Should Use ProtoGraph? ==
* Creators who want to move beyond visual scripting
* Developers building modular, reusable systems
* Teams collaborating on large-scale Resonite projects
 
== Benefits ==
* '''Readable''': Clean syntax that mirrors ProtoFlux
* '''Modular''': Encourages reusable and easy to refactor code
* '''Reliable''': Compiler checks help catch errors early
* '''Accessible''': Friendly to those familiar with ProtoFlux as a first programming language
 
== Building and Using in Resonite ==
 
[https://git.samsmucny.com/ssmucny/Flux-SDK/wiki/Getting-Started Getting Started]
 
# Write your <code>.pg</code> file
# Compile it:
<syntaxhighlight lang="bash">
dotnet flux-sdk.dll build MyModule.pg
</syntaxhighlight>
# Import the <code>.brson</code> file into Resonite
# Inspect the generated ProtoFlux under the corresponding slot
 
== Example: Cross Product Module ==
<syntaxhighlight lang="fsharp" line="1">
module CrossProduct
 
in A: float3
in B: float3
 
out this: float3
 
where {
// Inputs
Ax, Ay, Az = Unpack_Float3(A);
Bx, By, Bz = Unpack_Float3(B);
 
// Computations
Cx = (Ay * Bz) - (Az * By);
Cy = (Az * Bx) - (Ax * Bz);
Cz = (Ax * By) - (Ay * Bx);
 
// Final result
Pack_Float3(Cx, Cy, Cz);
}
</syntaxhighlight>
 
== See Also ==
* [https://git.samsmucny.com/ssmucny/Flux-SDK/wiki/Home Language Guide]
* [https://git.samsmucny.com/ssmucny/Flux-SDK Git Repository]
* [[ProtoFlux]]

Latest revision as of 16:53, 5 February 2026