Every rep,
rendered live.

Real-time 3D exercise figures for fitness apps on iOS, Android and the web.

A 3D figure with a barbell across the shoulders at the start of a squat, the quads tinted terracotta, in a dark studio.

A figure you can hold.

A video plays one take from one angle. A live figure turns in your hand, pauses at any point in the rep, shows which muscles are working and takes on your app's appearance.

Preparing the figure

Movement

Seated Side Lateral Raise

    Working

        Body

        Studio

        Muscle tint

        In the product

        Running in a real workout app.

        Setwise is our own workout app, and Repglyph started there. Every exercise opens on a live figure with its working muscles and a rep scrubber, drawn in the app's own colours and reading the same rig file as this page.

        Catalogue exercises mapped
        448
        System settings followed
        Dark mode, Reduce Motion
        Setwise on iOS in dark mode: the barbell squat screen with a live 3D figure, a rep scrubber, the worked muscles and the tempo.
        Setwise on iOS in light mode: the same barbell squat screen with the figure on a light stage.

        Setwise, iOS Simulator captures

        Under the surface.

        One movement definition, three native renderers, a compact rig file and a documented validation process.

        Renderers

        Native on every platform.

        Each platform draws the figure with its own renderer from the same rig file, with the same lighting, framing and interaction, so a squat looks the same everywhere you ship.

        iOSSwiftUI view, SceneKit
        AndroidJetpack Compose, Filament
        WebTypeScript, three.js, rendered in a worker

        Rig data

        The whole library in 0.5 MB.

        Every movement, body and prop ships in one compressed file with your app, so figures render on the device with no network calls. On the web a page can load one movement at a time, about 15 KB each.

        Validation

        Motion should be accurate, not just beautiful.

        Poses are validated against cited professional and clinical standards. Automated checks measure every pose against documented, cited thresholds. They are not a clinical assessment, and independent clinician review of the report is pending.

        Cited references
        273
        Automated checks per run
        2,633
        Movement families verified
        53 of 54

        Read the methodology

        SDK

        One component.

        struct ExerciseCard: View {
            @StateObject private var figure = FigureController()
        
            var body: some View {
                FigureView3D(catalogID: "D04AC939", muscle: nil,
                             body_: "female", controller: figure)
                    .frame(height: 320)
            }
        }

        Every figure has generated alt text. The viewer works from the keyboard and follows the reduced-motion setting on each platform. The target is 60 fps; so far it has been measured on the iOS Simulator, the Android emulator and desktop Chrome.

        Build with Repglyph.

        Repglyph is in early access. Terms for the commercial licences are set with each partner.

        Licences
        LicenceIncludesTerms
        Open-source 2D core Flat and monoline SVG figures and round thumbnails. Runs in Node, browsers and Workers. MIT code, CC0 movement data. Free
        Pro The 3D renderers for iOS, Android and the web, the full movement library and every body, theming, offscreen thumbnails, and updates as they ship. Licence per app
        Enterprise Custom movements, mapping to your own exercise IDs, your own suit and stage, a service agreement and direct support. Custom terms

        Early partner programme

        We're working with a small group of fitness apps before general release. Partners get help with integration, a say in which movements come next, and catalogue mapping during onboarding. Tell us which platforms you ship on.

        Platforms