Giter Club home page Giter Club logo

arart's Introduction

AR Art

AppIcon

A minimal iOS AR(Augumented Reality) app that displays 3D graphic arts in AR. It uses attractor systems.

An attractor is a set of states toward which a dynamic system tends to evolve, for a wide variety of starting conditions and parameters of the system.

The project includes four attractors and default parameters. Using the UI, users can change the parameters and find chaotic strange solutions. And also, they can modify the number of points ,animation speed, and colors, as they like.

  1. Clifford attractor
  2. de Jong attractor
  3. Hopalong attractor
  4. Lorenz attractor

The project:

  • Xcode 13.4, Swift 5.5 (Swift Concurrency)
  • Target: iOS / iPadOS 15.0 and later, macOS 12.0 and later on Apple Silicon
  • Frameworks: SwiftUI, ARKit, RealityKit2, Metal

It shows:

  • Procedural geometry generation with RealityKit2
  • Custom Material generation with RealityKit2 and Metal
  • Concurrent calculation with SwiftUI and Swift Concurrency

One small triangular pyramid is generated for each point in an equation. The pyramid consists of four vertices and four triangles as the face. For example, when creating 300,000 points, 1200K vertices and 1200K triangles are generated. ARKit and RealityKit display these 3d geometries in the realtime AR scene.

The project is a minimal implementation. Please modify it and make your own AR app!

Image Image Image GIF

The structure:

  • Views: HomeView, FigureView, ARContainerView, etc.
  • ViewModel: FigureSet, Figure
  • AR Scene State Management: ARScene
  • 3D Model Management: ModelManager, AttractorModel
  • Data Model: Attractor, CliffordAttractor, etc.
  • Metal: MetalLibLoader, surfaceShader

Image

References

MIT License

arart's People

Contributors

prakharsing7 avatar

Stargazers

Treata avatar Giau Huynh (Richard) avatar

Watchers

 avatar

Forkers

issom-projdev

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.