I code in Swift & Metal, building apps for the creation of video and graphics. I have a background in projection mapping and visual programming.
![]() |
![]() |
![]() |
![]() |
|
---|---|---|---|---|
Render | Circles | Jockey OSC | Clean OSC | HDR Camera |
![]() |
![]() |
![]() |
---|---|---|
AsyncGraphics | MetalUI | KeyColor |
Edit images and video with Swift concurrency, powered by Metal.
Home Page: http://async.graphics
License: MIT License
I code in Swift & Metal, building apps for the creation of video and graphics. I have a background in projection mapping and visual programming.
![]() |
![]() |
![]() |
![]() |
|
---|---|---|---|---|
Render | Circles | Jockey OSC | Clean OSC | HDR Camera |
![]() |
![]() |
![]() |
---|---|---|
AsyncGraphics | MetalUI | KeyColor |
We have two types: Graphic & Graph
The graphics are the source of the graphs.
I want to make versions of all graphics as graphs.
Polygon Example:
Graphic: polygon(...)
Graphs: AGPolygon & AGRoundedPolygon
Please feel free to submit a PR of a Graph implementation of a Graphic (one PR per graphic).
The example you give here throws errors on the line return GraphicVideoPlayer(url: url, options: options)
:
1: 'async' call in a function that does not support concurrency.
2: Call can throw, but it is not marked with 'try' and the error is not handled
I could fix error # 2 but struggle with fixing the first error.
I'm on Xcode 15.2, macOS 13.6.4.
Getting a warning for CameraController
line 73
captureSession.startRunning()
-[AVCaptureSession startRunning] should be called from background thread. Calling it on the main thread can lead to UI unresponsiveness
When processing frames from Graphic.playVideo
with the levels
effect, and setting the gamma
uniform in the levels shader to values greater than 1, the image does not get inverted. But when you obtain frames from the camera, the image does get inverted.
This is just a small issue, but swapping between video/camera sources might be common during development to prototype effects. So it might be worth looking into parity between the two frame sources.
Example:
let processed = try await frame.levels(
brightness: 2,
darkness: 0.6,
contrast: 0.2,
gamma: 1.2
)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.