Skip to content

artistso/socreate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SoCreate β€” Animate Your Imagination

Professional drawing & animation app for Samsung Galaxy Tab S10+, optimized for S Pen and 120Hz AMOLED display.

Developer: Steven Michael Allen Owens (@SoQuarky)
Company: AdventuresInDrawing
Brands: Soquarky Β· FunFYP Β· FPY.Lovely Β· Soquarky.Click
Website: soquarky.click Β· artistso.com
Support: support@soquarky.click Β· Crash Reports: soquarky@artistso.com


Feature Matrix

Drawing & Painting

Feature Status Source
13 built-in brush presets βœ… β€”
Custom brush patterns βœ… ibisPaint
Pressure curves per brush βœ… ibisPaint
Velocity-based brush settings βœ… Clip Studio v5
Brush smoothing / stabilizer βœ… FlipaClip
28+ blend modes βœ… ibisPaint / HiPaint
Smart shape detection (8 types) βœ… Clip Studio v5
Symmetry drawing (7 modes) βœ… HiPaint
Reference images βœ… HiPaint
Numeric keypad input βœ… ibisPaint
Floating panels (7 types) βœ… ibisPaint v14

Layer System

Feature Status Source
Unlimited layers βœ… β€”
16+ blend modes βœ… ibisPaint
Clipping masks βœ… HiPaint
Layer effects (shadow, glow, stroke) βœ… β€”
Layer outlining βœ… NEW Aseprite
Layer groups βœ… β€”
Adjustment layers βœ… β€”

Color System

Feature Status Source
Display P3 wide gamut βœ… Tab S10+
HSB color picker βœ… β€”
Color harmony modes βœ… β€”
Quick eyedropper βœ… ibisPaint
8 color themes βœ… NEW HiPaint
Custom theme editor βœ… NEW HiPaint
Theme import/export βœ… NEW β€”

Animation

Feature Status Source
Multi-track timeline βœ… FlipaClip
Variable frame durations βœ… FlipaClip
Frame labels & keyframe flags βœ… FlipaClip
Enhanced onion skin (8 modes) βœ… NEW Aseprite
Onion skin effect overlays (8 types) βœ… NEW β€”
Motion trails βœ… NEW β€”
Ghost frames βœ… NEW β€”
Multi-frame selection βœ… NEW Aseprite/Resprite
Batch editing (move, scale, rotate, flip, etc.) βœ… NEW Aseprite
Frame tags & color coding βœ… NEW Aseprite
Cel linking βœ… NEW Aseprite
Audio tracks (6 tracks) βœ… FlipaClip
Voice recording βœ… FlipaClip
Rotoscoping βœ… FlipaClip
Draw outside canvas (2Γ— oversize) βœ… FlipaClip

Puppet Mesh & Deformation

Feature Status Source
Puppet warp βœ… Clip Studio Paint
Triangulated mesh generation βœ… NEW β€”
Mesh density control (6 levels) βœ… NEW β€”
Pin placement (6 types) βœ… NEW β€”
Bone hierarchy with IK βœ… NEW β€”
4 rig presets (Humanoid, Quadruped, Face, Hand) βœ… NEW β€”
Pose saving & interpolation βœ… NEW β€”
Vertex weight painting βœ… NEW β€”
Liquify (6 modes) βœ… Clip Studio Paint
Smart shape detection βœ… Clip Studio v5

On-Screen Controls (Aseprite/Resprite)

Feature Status Source
Ctrl button (toggle select) βœ… NEW Aseprite
Shift button (range select) βœ… NEW Aseprite
Alt button (subtract from selection) βœ… NEW Aseprite
Configurable position βœ… NEW β€”
Haptic feedback βœ… NEW β€”
Auto-hide option βœ… NEW β€”

Connectivity & Sharing

Feature Status Notes
Google Sign-In βœ… NEW User ↔ Google only; developer never sees credentials
Share to YouTube βœ… NEW Animations only; configurable title/description/privacy
YouTube resolution up to 4K βœ… NEW 480p to 4K export
artistso.com integration βœ… NEW Tutorials, demos, courses by @SoQuarky

Privacy & Data

Feature Status Notes
Screen overlay permission βœ… NEW Floating tools over other apps
User-owned crash data βœ… NEW Stored locally, opt-in sharing
GitHub crash report posting βœ… NEW User posts to their own repo
Email crash reports βœ… NEW to soquarky@artistso.com
Auto-save with crash recovery βœ… Clip Studio v5
Timelapse recording (MP4/GIF) βœ… ibisPaint / HiPaint

Device Optimization (Samsung Galaxy Tab S10+)

Feature Status
120Hz rendering with Choreographer βœ…
S Pen 4096 pressure levels βœ…
S Pen tilt & azimuth βœ…
S Pen hover cursor βœ…
Palm rejection (TOOL_TYPE filtering) βœ…
Motion prediction βœ…
Display P3 wide gamut βœ…
Samsung DeX support βœ…
Edge-to-edge immersive mode βœ…
Keyboard shortcuts (B, E, L, Ctrl+Z, Ctrl+S) βœ…

Architecture

  • Pattern: MVI (Model-View-Intent) with pure state reducer
  • Layers: Clean Architecture (Presentation β†’ Domain β†’ Data)
  • Language: Kotlin with kotlinx.serialization, coroutines + Flow
  • DI: Hilt (models defined, wiring pending)
  • DB: Room (models defined, DAOs pending)
  • Rendering: OpenGL ES 3.0 via NDK (stub)
  • Target: arm64-v8a only (MediaTek Dimensity 9300+)
  • Min SDK: 34 (Android 14) / Target SDK: 35

Project Structure

SoCreate/
β”œβ”€β”€ app/src/main/java/com/socreate/app/
β”‚   β”œβ”€β”€ core/model/              # Domain models (MVI)
β”‚   β”‚   β”œβ”€β”€ AdvancedFeatures.kt  # 25+ feature models
β”‚   β”‚   β”œβ”€β”€ AdvancedIntents.kt   # 130+ feature intents
β”‚   β”‚   β”œβ”€β”€ AnimationAdvanced.kt # Onion skin, multi-frame, modifiers
β”‚   β”‚   β”œβ”€β”€ Branding.kt          # Developer identity
β”‚   β”‚   β”œβ”€β”€ BrushModels.kt       # 13 brush presets
β”‚   β”‚   β”œβ”€β”€ CanvasModels.kt      # Canvas, Project, Animation models
β”‚   β”‚   β”œβ”€β”€ DrawingIntents.kt    # Core drawing intents
β”‚   β”‚   β”œβ”€β”€ DrawingReducer.kt    # Pure state reducer
β”‚   β”‚   β”œβ”€β”€ DrawingState.kt      # 70+ state fields
β”‚   β”‚   β”œβ”€β”€ LayerModels.kt       # Layer system
β”‚   β”‚   β”œβ”€β”€ MviFramework.kt      # MVI base types
β”‚   β”‚   β”œβ”€β”€ PuppetMesh.kt        # Full puppet mesh system
β”‚   β”‚   β”œβ”€β”€ SoCreateColor.kt     # RGBA, HSB, Display P3
β”‚   β”‚   β”œβ”€β”€ StrokeModels.kt      # Stroke points with pressure/tilt
β”‚   β”‚   β”œβ”€β”€ TabS10Plus.kt        # Device profile & presets
β”‚   β”‚   β”œβ”€β”€ ThemeConfig.kt       # 8 color themes + custom
β”‚   β”‚   └── UserAccount.kt       # Auth, crash, YouTube, artistso
β”‚   β”œβ”€β”€ engine/
β”‚   β”‚   β”œβ”€β”€ auth/
β”‚   β”‚   β”‚   └── GoogleAuthHandler.kt  # Google Sign-In + YouTube
β”‚   β”‚   β”œβ”€β”€ brush/
β”‚   β”‚   β”‚   β”œβ”€β”€ BrushEngine.kt
β”‚   β”‚   β”‚   └── BrushPresets.kt
β”‚   β”‚   β”œβ”€β”€ canvas/
β”‚   β”‚   β”‚   └── CanvasRenderer.kt
β”‚   β”‚   β”œβ”€β”€ crash/
β”‚   β”‚   β”‚   └── CrashReportHandler.kt  # User-owned crash reports
β”‚   β”‚   β”œβ”€β”€ layer/
β”‚   β”‚   β”‚   └── LayerCompositor.kt
β”‚   β”‚   β”œβ”€β”€ learning/
β”‚   β”‚   β”‚   └── ArtistsoIntegration.kt # artistso.com content
β”‚   β”‚   β”œβ”€β”€ persistence/
β”‚   β”‚   β”‚   └── AutoSaveEngine.kt
β”‚   β”‚   β”œβ”€β”€ puppet/
β”‚   β”‚   β”‚   └── MeshEngine.kt          # Mesh generation + deformation
β”‚   β”‚   β”œβ”€β”€ renderer/
β”‚   β”‚   β”‚   β”œβ”€β”€ LayerOutlineRenderer.kt # Aseprite-style outlines
β”‚   β”‚   β”‚   β”œβ”€β”€ NativeRenderer.kt
β”‚   β”‚   β”‚   β”œβ”€β”€ OnionSkinRenderer.kt    # Enhanced onion skin
β”‚   β”‚   β”‚   β”œβ”€β”€ SmartShapeDetector.kt
β”‚   β”‚   β”‚   β”œβ”€β”€ StrokeRenderer.kt
β”‚   β”‚   β”‚   └── SymmetryRenderer.kt
β”‚   β”‚   β”œβ”€β”€ timelapse/
β”‚   β”‚   β”‚   └── TimelapseRecorder.kt
β”‚   β”‚   └── undo/
β”‚   β”‚       └── UndoEngine.kt
β”‚   β”œβ”€β”€ ui/
β”‚   β”‚   β”œβ”€β”€ drawing/
β”‚   β”‚   β”‚   β”œβ”€β”€ DrawingActivity.kt
β”‚   β”‚   β”‚   β”œβ”€β”€ DrawingCanvasView.kt
β”‚   β”‚   β”‚   β”œβ”€β”€ DrawingViewModel.kt
β”‚   β”‚   β”‚   └── ModifierButtonBar.kt    # On-screen Ctrl/Shift/Alt
β”‚   β”‚   β”œβ”€β”€ gallery/
β”‚   β”‚   β”‚   └── GalleryActivity.kt
β”‚   β”‚   β”œβ”€β”€ settings/
β”‚   β”‚   β”‚   └── SettingsActivity.kt     # (placeholder)
β”‚   β”‚   β”œβ”€β”€ crash/
β”‚   β”‚   β”‚   └── CrashReportActivity.kt  # (placeholder)
β”‚   β”‚   β”œβ”€β”€ learning/
β”‚   β”‚   β”‚   └── ArtistsoActivity.kt     # (placeholder)
β”‚   β”‚   └── theme/
β”‚   β”‚       └── ThemePickerActivity.kt  # (placeholder)
β”‚   └── SoCreateApp.kt
β”œβ”€β”€ app/src/main/
β”‚   β”œβ”€β”€ AndroidManifest.xml       # All permissions & activities
β”‚   β”œβ”€β”€ res/
β”‚   β”‚   β”œβ”€β”€ values/
β”‚   β”‚   β”‚   β”œβ”€β”€ strings.xml       # 250+ strings
β”‚   β”‚   β”‚   β”œβ”€β”€ colors.xml        # Theme colors
β”‚   β”‚   β”‚   └── themes.xml        # Material3 dark
β”‚   β”‚   β”œβ”€β”€ xml/
β”‚   β”‚   β”‚   β”œβ”€β”€ file_paths.xml    # FileProvider
β”‚   β”‚   β”‚   └── backup_rules.xml
β”‚   β”‚   β”œβ”€β”€ drawable/             # 16 toolbar icons
β”‚   β”‚   β”œβ”€β”€ layout/               # Activity layouts
β”‚   β”‚   └── mipmap-anydpi-v26/    # Adaptive icon
β”‚   └── cpp/
β”‚       β”œβ”€β”€ socreate_renderer.cpp # OpenGL ES 3.0 stub
β”‚       └── CMakeLists.txt
β”œβ”€β”€ app/src/test/                 # 70+ unit tests
β”œβ”€β”€ app/build.gradle.kts          # Build config + deps
β”œβ”€β”€ build.gradle.kts
β”œβ”€β”€ settings.gradle.kts
β”œβ”€β”€ privacy-policy.html           # Full privacy policy
β”œβ”€β”€ BUILD_GUIDE.md
└── README.md

Build Options

See BUILD_GUIDE.md for complete build instructions.

  1. Android Studio β€” Open project, sync Gradle, Build APK
  2. GitHub Actions β€” Push to main, download signed AAB from artifacts
  3. Termux on Tab S10+ β€” Install Android SDK in Termux, build on device

Privacy Commitment

  • No data collection β€” All artwork and project data stays on device
  • User-owned crash data β€” Crash reports are stored locally and belong to the user
  • Google Sign-In is optional β€” Only needed for YouTube sharing; connects user directly to Google
  • Developer never sees credentials β€” Google tokens never pass through our servers
  • Opt-in sharing only β€” Users choose whether to share crash reports via their own GitHub + email

See privacy-policy.html for the complete privacy policy.


Β© 2026 Steven Michael Allen Owens. All rights reserved.
SoCreate β€” Animate Your Imaginationβ„’
An AdventuresInDrawing production

About

🎨 Professional 2D Animation & Drawing β€” React Web + Android (Kotlin/Compose). Floating UI, S Pen, 13+ brushes, timeline, onion skinning. v2.0.0 released.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors