OneLiner (Graffito)
Create animated signature art in 2D and 3D. Draw a single OneLiner, a multi-stroke ThrowUp, or a ChiselTip marker signature, preview it, and export/share.
Updated: 2026-02-20
Defaults
ChiselTip — Signature Capture (2D)
Whenever you enter the ChiselTip signature capture screen, the display options reset to:
- Length: 60
- Rotation: 15°
- Color: White (white brush, black background)
ChiselTip — Playback (3D)
Whenever you switch into 3D mode in ChiselTip playback, the 3D material controls reset to:
- Radius: 120 mm
- Roughness: 0.50
- Metallic: 0.80
- Diffuse Color: Grey
- Emission Color: Purple
Highlights
- SwiftUI capture + playback
- SceneKit 3D rendering with smooth tube geometry and end-caps
- Animated draw-in sequence, zoom, and optional camera motion
- Options drawer (non-blocking) for brush/material controls
- Export to USDZ (3D) with normalized physical size and Quick Look preview
- ChiselTip can export PNG (2D, transparent background) and preview via Quick Look
App flow
1) Menu (ContentView)
- Tiles: ChiselTip, OneLiner, ThrowUp
- SprayPaint is currently disabled (coming soon)
2) Capture
- OneLiner: draw one continuous stroke → auto-advance to 3D
- ThrowUp: draw multiple strokes; use Undo/Clear; tap Done to proceed
- ChiselTip: timed multi-stroke capture using a rectangular (chisel) brush
3) Viewer / Playback
- ChiselTip (
Marker3DView)
- Toggle between 2D and 3D
- Replay replays the active mode (2D playback or 3D animation)
- Options drawer controls 2D brush + 3D material parameters
- OneLiner/ThrowUp (
Signature3DView)
- Animated draw-in of subpaths
- Options drawer controls radius, roughness, metallic, diffuse/emission colors
4) Export
- Exports are written to your app’s Documents directory and presented in Quick Look.
- While Quick Look is visible, the in-app Export button is hidden to avoid double-export taps.
- OneLiner →
OneLine_yyyy-MM-dd_HH-mm-ss.usdz
- ThrowUp →
ThrowUp_yyyy-MM-dd_HH-mm-ss.usdz
- ChiselTip (2D mode) →
ChiselTip2D_yyyy-MM-dd_HH-mm-ss.png (transparent background)
- ChiselTip (3D mode) → USDZ (see
Marker3DView for naming)
Build & run
- Open
OneLiner.xcodeproj in Xcode
- Select an iOS device or simulator (see project settings for the minimum iOS version)
- Build and run
Where to find exported files
- On device: Files app → On My iPhone/iPad → OneLiner (or the app’s container name)
- In-app: Quick Look shows immediately after export; use the share button to send/save elsewhere
Architecture at a glance
OneLiner/OneLinerApp.swift — app entry
OneLiner/ContentView.swift — menu and navigation
OneLiner/SignatureCaptureView.swift — drawing capture (single/multi)
OneLiner/MarkerSignatureCaptureView.swift — ChiselTip capture
OneLiner/Signature3DView.swift — SceneKit viewer, options drawer, USDZ export + Quick Look
OneLiner/Marker3DView.swift — ChiselTip viewer (2D/3D) + export
OneLiner/Marker2DSignatureExporter.swift — ChiselTip 2D PNG renderer/export
OneLiner/TubeStrokeGeometryBuilder.swift — tube mesh generation
OneLiner/StrokeSmoother.swift — stroke smoothing
OneLiner/Signature3DMaterialLibrary.swift — material presets
Troubleshooting
- Duplicate App entry error: ensure only
OneLinerApp is annotated with @main
- No Export button during preview: that’s intentional while Quick Look is visible
- Can’t find exported files: export writes to the app’s Documents directory; use Quick Look’s share action to save to Files/iCloud
Privacy
See PRIVACY.md.
License
All rights reserved.