MCPcopy Index your code
hub / github.com/Arcelyth/live-ascii

github.com/Arcelyth/live-ascii @v0.5.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.5 ↗ · + Follow
326 symbols 517 edges 32 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Live-ASCII

A Live2D Cubism model renderer for terminal. It also support face tracking.

showcase

Usage

You must have the Live2D Cubism SDK Core library: Live2D Cubism SDK.

Create a .env file in the project root to specify the path to the SDK directory:

# Example .env configuration
CubismSDKDir=/path/to/your/CubismSDK/Core/lib
cargo run --release -- ./path/to/model.model3.json

You can download and try Live2D sample model here.

# Run with camera tracking enabled
cargo run --release -- ./path/to/model.model3.json --camera

Note: For face tracking, ensure OpenSeeFace is running and sending data to the default UDP port (11573).

Basic Operations

The arrow keys are used for moving the camera, and the + - keys are used for zooming in and out.

Interactions

In order to interact with app. You need to write a model_name.live.json file and place it in the same folder as your model_name.model3.json.

examples:

{
  "Version": 1,
  "Name": "your_model_name",
  "Hotkeys": [
    {
      "Action": "Open/Close Motion Panel",
      "Triggers": {
        "Trigger1": "M",
        "Trigger2": "",
        "Trigger3": ""
      }
    },
    {
      "Action": "Open/Close Debug Panel",
      "Triggers": {
        "Trigger1": "D",
        "Trigger2": "",
        "Trigger3": ""
      }
    },
    {
      "Action": "Enable/Disable Physics",
      "Triggers": {
        "Trigger1": "P",
        "Trigger2": "",
        "Trigger3": ""
      }
    },
    {
      "Action": "Open/Close Camera",
      "Triggers": {
        "Trigger1": "C",
        "Trigger2": "",
        "Trigger3": ""
      }
    }
  ]
}

Features in future

  • Separate live2d framework to a crate.
  • Support processes interaction.
  • Enable multiply expressions.

Extension points exported contracts — how you extend this code

ACubismMotion (Interface)
(no doc) [2 implementers]
src/motion/amotion.rs

Core symbols most depended-on inside this repo

push
called by 61
src/ui/popup.rs
set_param_smoothed
called by 24
src/controller.rs
clamp
called by 14
src/controller.rs
lerp
called by 13
src/controller.rs
get_parameter_index
called by 10
src/model.rs
cal_value
called by 9
src/expression/exp.rs
set_parameter_value
called by 8
src/model.rs
get_easing_sine
called by 8
src/motion/amotion.rs

Shape

Method 190
Class 77
Function 43
Enum 15
Interface 1

Languages

Rust100%

Modules by API surface

src/model_setting.rs52 symbols
src/motion/amotion.rs31 symbols
src/physics.rs29 symbols
src/model.rs26 symbols
src/motion/json.rs18 symbols
src/expression/exp.rs18 symbols
src/live/json.rs15 symbols
src/physics/json.rs14 symbols
src/motion/queue.rs12 symbols
src/context.rs12 symbols
src/ui/popup.rs11 symbols
src/effect/pose.rs11 symbols

For agents

$ claude mcp add live-ascii \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page