Skip to content

Commit

Permalink
Merge branch 'main' into goldenLayoutV2
Browse files Browse the repository at this point in the history
  • Loading branch information
hyazinthh committed Feb 6, 2024
2 parents fb08b33 + 7f3d46d commit 49cec5d
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 172 deletions.
19 changes: 0 additions & 19 deletions .travis.yml

This file was deleted.

22 changes: 5 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,11 @@
[![license](https://img.shields.io/github/license/aardvark-platform/aardvark.media.svg)](https://github.com/aardvark-platform/aardvark.media/blob/master/LICENSE)

[The Aardvark Platform](https://aardvarkians.com/) |
[Platform Wiki](https://github.com/aardvarkplatform/aardvark.docs/wiki) |
[The Platform Walkthrough Repository](https://github.com/aardvark-platform/walkthrough) |
[Media Examples](https://github.com/aardvark-platform/aardvark.media/tree/master/src/Examples%20(dotnetcore)) |
[Gallery](https://github.com/aardvarkplatform/aardvark.docs/wiki/Gallery) |
[Quickstart](https://github.com/aardvarkplatform/aardvark.docs/wiki/Quickstart-Windows) |
[Status](https://github.com/aardvarkplatform/aardvark.docs/wiki/Status)
[Gallery](https://github.com/aardvark-platform/aardvark.docs/wiki/Gallery) |
[Packages&Repositories](https://github.com/aardvark-platform/aardvark.docs/wiki/Packages-and-Repositories)

Aardvark.Media is part of the open-source [Aardvark platform](https://github.com/aardvark-platform/aardvark.docs/wiki) for visual computing, real-time graphics and visualization. aardvark.media works on top of aardvark.base and uses aardvark.rendering as (3D)-rendering engine:
Aardvark.Media provides high-performance applications and purely functional application programming for graphics and user interfaces. It brings together 3D graphics, user interfaces, and complex interactions with the [ELM](https://elm-lang.org/) architecture, which makes declarative, reliable UI and app development easier. Aardvark.Media supports interactions with objects in 3D renderings, just like buttons in elm or [Elmish](https://elmish.github.io/elmish/). In Aardvark.Media, changes are computed on the model, allowing incrementally updating optimized scene representations for 3D rendering. The library runs on netcore and sites are served using [suave](https://suave.io/) or [Giraffe](https://github.com/giraffe-fsharp/Giraffe). Rendering supports OpenGL and Vulkan. Applications typically use the electron-based [aardium](https://github.com/aardvark-community/aardium) for client-side application deployment or full server-side application deployment. Experimental support for client-side deployment using [fable](https://fable.io/) exists. Aardvark.Media’s server-side approach is particularly useful in remote-rendering scenarios. Supported platforms are windows, linux, macOS.

![Alt text](./data/context.svg)
You can find demos and code in the Gallery and Packages&Repositories links above. Additionally, examples are available in the `src/Examples*` folder in this repository. [This repository's wiki](https://github.com/aardvark-platform/aardvark.media/wiki) contains technical documentation and written tutorials. For more information, please refer to the [aardvark.docs wiki](https://github.com/aardvark-platform/aardvark.docs/wiki).


3D graphics, user interfaces and complex interactions on top are challenging and time consuming in classical programming models. High-level abstraction, immutable data and functional programming concepts on the other hand boost productivity. aardvark.media brings together high-performance applications and purely functional application programming.
The ELM architecture has become popular in web-development and for user interfaces (e.g. [ELM](https://elm-lang.org/), [Fabulous](https://fsprojects.github.io/Fabulous/), [Elmish](https://elmish.github.io/elmish/),...) and makes declarative, reliable UI and app development easier.
aardvark.media follows the same concept but has some distinct features:
- Just like buttons in elm or elmish, aardvark.media supports interactions with objects in 3D renderings. Rendering is done by the highly efficient [aardvark.rendering](https://github.com/aardvark-platform/aardvark.rendering) engine.
- Other systems execute the view function after each modification to the model. In aardvark.media the changes are computed on the model (which is typically much smaller than the generated UI) itself. [aardvark.base](https://github.com/aardvark-platform/aardvark.base)'s *incremental system* takes care of reexecuting specific parts of the view function. This takes the burden of diffing from the HTML engine, but more importantly allows to incrementally update optimized scene representations for 3D rendering. The rational behind this is that the model is typically much smaller than the generated UI, or more severely much easier to diff than 3D geometry.
- aardvark.media currently runs on netcore and serves a website using [suave](https://suave.io/). The rendering part is done in *fullblown OpenGL/Vulkan* in the aardvark rendering engine. Applications typically use the [electron](https://electronjs.org/) based [aardium](https://github.com/aardvark-community/aardium) for client side application deployment or full server side application deployment. We work on client-side deployment using [fable](https://fable.io/) as well, but aardvark.media's server side approach has also advantages and particular usecases.

More info can be found in the [Platform Wiki](https://github.com/aardvarkplatform/aardvark.docs/wiki), and more particularly [here](https://github.com/aardvark-platform/aardvark.docs/wiki/Learning-Aardvark.Media-%231), [here](https://github.com/aardvark-platform/aardvark.docs/wiki/Learning-Aardvark.Media-%232), and [here](https://github.com/aardvark-platform/aardvark.docs/wiki/Learning-Aardvark.Media-%233).
Aardvark.Media is part of the open-source [Aardvark Platform](https://github.com/aardvark-platform) for visual computing, real-time graphics, and visualization. Aardvark.Media builds on basic data structures and tools from [Aardvark.Base](https://github.com/aardvark-platform/aardvark.base). High-performance 3D rendering is provided by [Aardvark.Rendering](https://github.com/aardvark-platform/aardvark.rendering).
3 changes: 0 additions & 3 deletions src/Aardvark.UI.Primitives/Aardvark.UI.Primitives.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,6 @@
<Compile Include="Controllers\CameraUtilities.fs" />
<Compile Include="Controllers\LegacyCameraController.fs" />
<Compile Include="Docking.fs" />
<Content Include="d3Test.js">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Compile Include="OpenDialog.fs" />
<Compile Include="SaveDialog.fs" />
<EmbeddedResource Include="resources\spectrum.css" />
Expand Down
2 changes: 2 additions & 0 deletions src/Aardvark.UI.Primitives/Primitives/UI.Primitives.Models.fs
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,15 @@ module Tree =
[<ModelType>]
type TreeModel = { data: Tree }

// TODO: Delete
[<ModelType>]
type D3TestInput =
{
t1 : int
t2 : int
}

// TODO: Delete
[<ModelType>]
type D3AxisInput =
{
Expand Down
15 changes: 13 additions & 2 deletions src/Aardvark.UI.Primitives/Primitives/UI.Primitives.fs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ module Html =

let horizontal ch = table [clazz "ui table"; style "backgroundColor: transparent"] [ tbody [] [ tr [] ch ] ]

[<Obsolete("Equivalent to 'td [] []'. Why does this exist and why are you using it?")>]
let finish<'msg> = td [] []

type ColorConverter =
Expand Down Expand Up @@ -68,11 +69,19 @@ module Html =

let row k v = tr [] [ td [clazz "collapsing"] [text k]; td [clazz "right aligned"] v ]

[<Obsolete("Why does this exist and why are you using it?")>]
type A = { a : aval<int> }

[<Obsolete("Why does this exist and why are you using it?")>]
let a = AVal.init { a = AVal.init 10 }

let test =
a |> AVal.map (fun z -> AVal.map (fun v -> v + 1) z.a)
[<Obsolete("Why does this exist and why are you using it?")>]
let test : aval<aval<int>> = AVal.constant (AVal.constant 0)

/// Sets the document.title property adaptively.
let title (title : aval<string>) (node : DomNode<'msg>) =
let code = "chDocumentTitle.onmessage = function (title) { document.title = title };"
onBoot' ["chDocumentTitle", AVal.channel title] code node

let semui =
Primitives.SimplePrimitives.Html.semui
Expand Down Expand Up @@ -407,6 +416,7 @@ module Numeric =

open MBrace.FsPickler.Json

[<Obsolete("Why does this exist and why are you using it?")>]
module D3Test =
type Action =
| SetData of D3TestInput
Expand Down Expand Up @@ -546,6 +556,7 @@ module D3Test =
let start () =
app |> App.start

[<Obsolete("Why does this exist and why are you using it?")>]
module D3Axis =
type Action =
| SetData of D3AxisInput
Expand Down
131 changes: 0 additions & 131 deletions src/Aardvark.UI.Primitives/d3Test.js

This file was deleted.

0 comments on commit 49cec5d

Please sign in to comment.