Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
2f23b34
Update docs
stevenjoezhang May 12, 2020
89673c2
Bump version
stevenjoezhang May 12, 2020
d8d42be
Fix darkmode color & mobile style
stevenjoezhang May 14, 2020
2958542
Cache API response
stevenjoezhang May 20, 2020
3cb2130
Update README.md
stevenjoezhang May 20, 2020
53c1299
Update docs for cdnPath
stevenjoezhang May 21, 2020
7a2f806
Optimize `cdnPath` check
stevenjoezhang May 21, 2020
c050271
Optimize the style of #waifu (#41)
leirock May 21, 2020
c52ac5d
Fix for new GitHub README width
stevenjoezhang Jun 23, 2020
5ead210
Update README.md
stevenjoezhang Jun 24, 2020
59dbbf8
Update CDN URL
stevenjoezhang Jul 13, 2020
b6f9613
Update login.html
stevenjoezhang Jul 21, 2020
26dfd56
Use destructuring assignment
stevenjoezhang Jul 31, 2020
1a95807
Update docs
stevenjoezhang Dec 3, 2020
7617436
Upgrade to Bootstrap 5
stevenjoezhang May 7, 2021
f0aa9f3
Replace anchor with button
stevenjoezhang Jun 27, 2021
1959d07
Fix style issue with Font Awesome js
stevenjoezhang Nov 2, 2021
d3b8554
Upgrade to Font Awesome 5
stevenjoezhang Nov 2, 2021
865ecc5
Upgrade to Font Awesome 6
stevenjoezhang Apr 23, 2022
cfafafa
Update CDN URL
stevenjoezhang May 20, 2022
d3a2a8b
Make tools optional
stevenjoezhang Oct 20, 2022
f7177a2
Fix inaccurate referrer.search
stevenjoezhang Oct 20, 2022
abb832a
Inline SVG icon
stevenjoezhang Oct 20, 2022
f267a27
Build waifu-tips.js
stevenjoezhang Oct 20, 2022
f0594f6
Update selectors
stevenjoezhang Oct 20, 2022
a1eb4ca
Update docs
stevenjoezhang Oct 20, 2022
edbf98e
Separate files
stevenjoezhang Oct 20, 2022
34e5d56
Enable compression
stevenjoezhang Oct 20, 2022
b77cd5e
Create tools.js
stevenjoezhang Oct 20, 2022
f9d1685
Update acknowledgements
stevenjoezhang Oct 20, 2022
477be78
Clean up
stevenjoezhang Oct 20, 2022
9f4ac1c
Refactor welcomeMessage
stevenjoezhang Oct 20, 2022
d28d74c
Build waifu-tips.js
stevenjoezhang Oct 20, 2022
e0be7ad
Refactor registerEventListener
stevenjoezhang Oct 20, 2022
45807e0
Custom message
stevenjoezhang Oct 20, 2022
15caf53
Update comment
stevenjoezhang Oct 20, 2022
dd2041d
Update README.md
stevenjoezhang Oct 21, 2022
e76cc41
Update README.md
stevenjoezhang Oct 21, 2022
b352ba5
Create index.js
stevenjoezhang Oct 21, 2022
511e95b
Update docs
stevenjoezhang Oct 22, 2022
ac792b6
Fix span color
stevenjoezhang Oct 23, 2022
814115d
Support build-dev
stevenjoezhang Oct 24, 2022
ff687ea
Update darkmode README
stevenjoezhang Nov 12, 2022
ae27493
Optimize mouseover & click callback
stevenjoezhang Jan 1, 2023
1ac32ab
Create README.en.md
stevenjoezhang Jun 10, 2023
bc08b5e
Fix broken link
stevenjoezhang Feb 26, 2024
5e14e1c
Update package path
stevenjoezhang Dec 26, 2024
931c9d6
Make the project into Typescript (#174)
whats2000 Dec 27, 2024
58d80da
Move assets to demo/screenshots
stevenjoezhang Dec 27, 2024
eb214de
Update dependencies
stevenjoezhang Dec 27, 2024
af21c3b
Configure eslint
stevenjoezhang Dec 27, 2024
64efc3d
Rename types folder
stevenjoezhang Dec 27, 2024
5ec8590
Add GitHub Actions workflow
stevenjoezhang Dec 27, 2024
d1cc37a
Update README.md
stevenjoezhang Dec 28, 2024
689b5c4
Add/Fix: Add JSDoc for function and type and fix bugs (#175)
whats2000 May 6, 2025
4586956
Update README
stevenjoezhang May 7, 2025
12a63b9
Add loadExternalResource
stevenjoezhang May 7, 2025
d1bfaea
Update autoload.js
stevenjoezhang May 7, 2025
5fd541f
Update package.json
stevenjoezhang May 7, 2025
99b5efa
Add renovate.json (#120)
renovate[bot] May 7, 2025
ddc8ff9
Add live2d source files
stevenjoezhang May 16, 2025
10df75c
Fix loadModelList
stevenjoezhang May 16, 2025
55726d0
Use let/const
stevenjoezhang May 16, 2025
bb9ff93
Use fetch
stevenjoezhang May 16, 2025
68488d1
Make changeModel async function
stevenjoezhang May 16, 2025
e78e1dc
Fix canvas.toDataURL empty
stevenjoezhang May 16, 2025
46f0986
Migrate to new framework
stevenjoezhang May 16, 2025
155e5df
Refactor init-widget.ts
stevenjoezhang May 16, 2025
1a18f0f
Rebuild
stevenjoezhang May 16, 2025
758fbc6
Refactor logger
stevenjoezhang May 16, 2025
fcd5365
Update docs
stevenjoezhang May 16, 2025
4a371bd
Rename to widget.ts
stevenjoezhang May 16, 2025
aae5527
Make the widget draggable
stevenjoezhang May 16, 2025
885c895
Move loadExternalResource to utils.ts
stevenjoezhang May 16, 2025
40e3ebe
Remove options
stevenjoezhang May 16, 2025
4bf2286
Use async/await
stevenjoezhang May 16, 2025
cc487fa
Fix modelId
stevenjoezhang May 16, 2025
ca6a301
Add modelId option
stevenjoezhang May 16, 2025
2ebd550
Make waifuPath optional
stevenjoezhang May 16, 2025
85f513e
Default modelId should be 1 when using api
stevenjoezhang May 16, 2025
bdae189
Rename result.ts to tips.ts
stevenjoezhang May 17, 2025
5cffe30
Move welcomeMessage to message.ts
stevenjoezhang May 17, 2025
e315559
Rename waifu-tips.ts to main.ts
stevenjoezhang May 17, 2025
30968df
Refactor modelId handling
stevenjoezhang May 17, 2025
961ddcf
Remove loadExternalResource
stevenjoezhang May 17, 2025
5636fe8
Support loadRandTexture when using cdnPath
stevenjoezhang May 17, 2025
93248a3
Fix async loadJSON
stevenjoezhang May 17, 2025
2498a72
Update structure
stevenjoezhang May 17, 2025
6121046
Refactor types
stevenjoezhang May 17, 2025
8301da7
Drop old config
stevenjoezhang May 17, 2025
49b11c0
Rebuild
stevenjoezhang May 17, 2025
a8ce503
Release 1.0.0-rc.1
stevenjoezhang May 17, 2025
46b74a4
Pin version
stevenjoezhang May 17, 2025
42e80a5
Fix path in esm
stevenjoezhang May 17, 2025
6dfb07f
Patch icon import
stevenjoezhang May 17, 2025
e6dfde5
Fix icons svg
stevenjoezhang May 18, 2025
4a6b52b
Deprecate apiPath option
stevenjoezhang May 18, 2025
d4467d5
Update tools type
stevenjoezhang May 18, 2025
b5f3b6a
Fix demo
stevenjoezhang May 18, 2025
8564e04
Support dynamic loading cubism cores
stevenjoezhang May 18, 2025
2cee998
Switch to esm
stevenjoezhang May 18, 2025
a6a6836
Set target to es6
stevenjoezhang May 18, 2025
1f8bcd7
Rebuild
stevenjoezhang May 18, 2025
cf333ed
Release 1.0.0-rc.2
stevenjoezhang May 18, 2025
c0ada53
Update README
stevenjoezhang May 18, 2025
460ff2e
Support cubism5
stevenjoezhang May 18, 2025
dde8b18
Support building SDK
stevenjoezhang May 18, 2025
5f9511a
Update README
stevenjoezhang May 18, 2025
b582ee3
Fix typo
stevenjoezhang May 18, 2025
d493fb5
Support both sdk
stevenjoezhang May 18, 2025
1be69ce
Support findCubismDir
stevenjoezhang May 18, 2025
4558ef7
Move live2d to cubism2
stevenjoezhang May 19, 2025
9bcbbb7
Add cleanup function
stevenjoezhang May 19, 2025
d1cda56
Fix cubism sdk switch
stevenjoezhang May 19, 2025
5f42b7b
Fix drag
stevenjoezhang May 19, 2025
0a170aa
Update comments
stevenjoezhang May 19, 2025
90640c9
Lock loadLive2D
stevenjoezhang May 19, 2025
6d8f9f5
Introduce new ModelList config
stevenjoezhang May 19, 2025
95ed8b6
Rebuild
stevenjoezhang May 19, 2025
7ad4098
Use fa_child icon
stevenjoezhang May 19, 2025
5d78207
Refactor index check
stevenjoezhang May 19, 2025
57163b7
Support new message type
stevenjoezhang May 19, 2025
ca7e833
Support more messages
stevenjoezhang May 19, 2025
2172767
Support i18n
stevenjoezhang May 20, 2025
8504a50
Refactor tools
stevenjoezhang May 20, 2025
4cb4a10
Update icon
stevenjoezhang May 22, 2025
bfc62ba
Fix import name
stevenjoezhang May 22, 2025
a857b23
Update docs
stevenjoezhang May 22, 2025
babfaee
Full i18n support
stevenjoezhang May 25, 2025
d5ffc86
Update scripts
stevenjoezhang May 25, 2025
41975e0
Rebuild
stevenjoezhang May 25, 2025
4342f4f
Release 1.0.0-rc.3
stevenjoezhang May 25, 2025
39d77b6
Update version
stevenjoezhang May 25, 2025
deb98ea
Use class to control style
stevenjoezhang May 25, 2025
3ecd1dd
Update style
stevenjoezhang May 26, 2025
1f12f42
Update comments
stevenjoezhang May 27, 2025
ebff1db
Fix fetch error
stevenjoezhang Jun 4, 2025
3414574
Update logger text
stevenjoezhang Jun 4, 2025
f522b25
Optimize modelTurnHead
stevenjoezhang Jun 4, 2025
03abe1a
Update autoload.js
stevenjoezhang Jun 5, 2025
9ea2998
Support new live2d event
stevenjoezhang Jun 5, 2025
3bda029
Optimize message display
stevenjoezhang Jun 5, 2025
231c3fe
Update waifu-tips.json
stevenjoezhang Jun 5, 2025
26e3426
Rebuild
stevenjoezhang Jun 5, 2025
8883dab
Release 1.0.0-rc.4
stevenjoezhang Jun 5, 2025
c0f6318
Fix followPointer (#193)
Jul 7, 2025
e179733
Fix textureCache
stevenjoezhang Jul 7, 2025
ef1f177
Set target to es2017
stevenjoezhang Jul 7, 2025
1bb202f
Rebuild
stevenjoezhang Jul 7, 2025
2e5999c
Release 1.0.0-rc.5
stevenjoezhang Jul 7, 2025
f6a9982
Remove logger for motion
stevenjoezhang Jul 7, 2025
6eea1f3
Rebuild
stevenjoezhang Jul 7, 2025
6bc8e7f
Release 1.0.0-rc.6
stevenjoezhang Jul 7, 2025
b000f77
Add prepublishOnly script
stevenjoezhang Jul 7, 2025
a09e7cb
Fix scale
stevenjoezhang Jul 9, 2025
264d9f3
Rebuild
stevenjoezhang Aug 13, 2025
c2a06ae
Release 1.0.0-rc.7
stevenjoezhang Aug 13, 2025
2e775b3
Fix welcomeMessage
stevenjoezhang Sep 5, 2025
9b1c25a
Fix tapBody message
stevenjoezhang Sep 5, 2025
a2296cf
Add chat.html demo
stevenjoezhang Oct 17, 2025
f7c56a3
Update dependency @types/node to v22.18.11 (#184)
renovate[bot] Oct 19, 2025
7211c3b
Update dependency typescript-eslint to v8.46.1 (#185)
renovate[bot] Oct 19, 2025
000d23c
Update eslint monorepo to v9.38.0 (#186)
renovate[bot] Oct 19, 2025
b84c5d0
Update dependency rollup to v4.52.5 (#189)
renovate[bot] Oct 19, 2025
4d5ad8e
Update dependency typescript to v5.9.3 (#198)
renovate[bot] Oct 19, 2025
2320b66
Update actions/checkout action to v5 (#200)
renovate[bot] Oct 19, 2025
633436c
Update actions/setup-node action to v6 (#205)
renovate[bot] Oct 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/workflows/linter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Linter

on: [push, pull_request]

jobs:
linter:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Use Node.js
uses: actions/setup-node@v6
- name: Install Dependencies
run: npm install
- run: npm run eslint
21 changes: 21 additions & 0 deletions .github/workflows/tester.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Tester

on: [push, pull_request]

jobs:
tester:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
fail-fast: false
steps:
- uses: actions/checkout@v5
with:
repository: hexojs/hexo-starter
- name: Use Node.js
uses: actions/setup-node@v6
- name: Install Dependencies
run: npm install
- name: Test
run: npm run build
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package-lock.json
node_modules/
.DS_Store
.idea/
.vscode/
backup/
src/CubismSdkForWeb-*/
build/CubismSdkForWeb-*/
2 changes: 2 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules
dist
6 changes: 6 additions & 0 deletions .prettierrc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
tabWidth: 2
semi: true
singleQuote: true
jsxSingleQuote: true
trailingComma: all
endOfLine: crlf
217 changes: 217 additions & 0 deletions README.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,217 @@
# Live2D Widget

![](https://forthebadge.com/images/badges/built-with-love.svg)
![](https://forthebadge.com/images/badges/made-with-typescript.svg)
![](https://forthebadge.com/images/badges/uses-css.svg)
![](https://forthebadge.com/images/badges/contains-cat-gifs.svg)
![](https://forthebadge.com/images/badges/powered-by-electricity.svg)
![](https://forthebadge.com/images/badges/makes-people-smile.svg)

[中文](README.md)

## Features

- Add Live2D widget to web page
- Lightweight, with no runtime dependencies other than Live2D Cubism Core
- Core code is written in TypeScript, making it easy to integrate

<img src="demo/screenshots/screenshot-2.png" width="280"><img src="demo/screenshots/screenshot-3.png" width="280"><img src="demo/screenshots/screenshot-1.png" width="270">

*Note: The character models above are for demonstration purposes only and are not included in this repository.*

You can also check out example web pages:

- Check the effect in the lower left corner of [Mimi's Blog](https://zhangshuqiao.org)
- [demo/demo.html](https://live2d-widget.pages.dev/demo/demo) to demonstrate basic functionality
- [demo/login.html](https://live2d-widget.pages.dev/demo/login) to imitate the login interface of NPM

## Usage

If you are a beginner or only need the basic functionality, you can simply add the following line of code to the `head` or `body` of your HTML page to load the widget:

```html
<script src="https://fastly.jsdelivr.net/npm/live2d-widgets@1.0.0-rc.7/dist/autoload.js"></script>
```

The placement of the code depends on how your website is built. For example, if you are using [Hexo](https://hexo.io), you need to add the above code to the template file of your theme. The modification process is similar for pages generated using various template engines.
If your website uses PJAX, since the widget does not need to be refreshed on every page, make sure to place the script outside the PJAX refresh area.

**However, we strongly recommend configuring the widget yourself to make it more suitable for your website!**
If you are interested in customizing the widget, please refer to the detailed instructions below.

## Configuration

You can refer to the source code of `dist/autoload.js` to see the available configuration options. `autoload.js` will automatically load two files: `waifu.css` and `waifu-tips.js`. `waifu-tips.js` creates the `initWidget` function, which is the main function for loading the widget. The `initWidget` function accepts an object-type parameter as the configuration for the widget. The following are the available options:

| Option | Type | Default Value | Description |
| ------ | ---- | ------------- | ----------- |
| `waifuPath` | `string` | `https://fastly.jsdelivr.net/npm/live2d-widgets@1/dist/waifu-tips.json` | Path to the widget resources, can be modified |
| `cdnPath` | `string` | `https://fastly.jsdelivr.net/gh/fghrsh/live2d_api/` | CDN path |
| `cubism2Path` | `string` | `https://fastly.jsdelivr.net/npm/live2d-widgets@1/dist/live2d.min.js` | Path to Cubism 2 Core |
| `cubism5Path` | `string` | `https://cubism.live2d.com/sdk-web/cubismcore/live2dcubismcore.min.js` | Path to Cubism 5 Core |
| `modelId` | `number` | `0` | Default model id |
| `tools` | `string[]` | see `autoload.js` | Buttons of the loaded tools |
| `drag` | `boolean` | `false` | Make the widget draggable |
| `logLevel` | `string` | `error` | Log level: `error`, `warn`, `info`, `trace` |

## Model Repository

This repository does not include any models. You need to configure a separate model repository and set it via the `cdnPath` option.
Older versions of the `initWidget` function supported the `apiPath` parameter, which required users to set up their own backend. You can refer to [live2d_api](https://github.com/fghrsh/live2d_api) for details. The backend interface would integrate model resources and dynamically generate JSON description files. Since version 1.0, these features have been implemented on the frontend, so a dedicated `apiPath` is no longer required. All model resources can be provided statically. As long as `model_list.json` and the corresponding `textures.cache` for each model exist, features such as outfit changing are supported.

## Development

If the options provided in the "Configuration" section above are not enough to meet your needs, you can make modifications yourself. The directory structure of this repository is as follows:

- `src` directory contains the TypeScript code for each component, e.g. the button and dialog box.
- `build` directory contains files generated from the source code in `src` (please do not modify them directly!)
- `dist` directory contains the files that can be directly used on web pages after packaging, including:
- `autoload.js` is used to automatically load other resources such as style sheets.
- `waifu-tips.js` is automatically generated by `build/waifu-tips.js` and it is not recommended to modify it directly.
- `waifu.css` is the style sheet for the widget.
- `waifu-tips.json` defines the triggering conditions (`selector`, CSS selector) and the displayed text when triggered (`text`).
By default, the CSS selector rules in `waifu-tips.json` are effective for the Hexo [NexT theme](https://github.com/next-theme/hexo-theme-next), but you may need to modify or add new content to make it suitable for your own website.
**Warning: The content in `waifu-tips.json` may not be suitable for all age groups or appropriate to access during work. Please ensure their suitability when using them.**

To deploy the development testing environment of this project locally, you need to install Node.js and npm, then execute the following commands:

```bash
git clone https://github.com/stevenjoezhang/live2d-widget.git
npm install
```

If you need to use Cubism 3 or newer models, please download and extract the Cubism SDK for Web separately into the `src` directory, for example, `src/CubismSdkForWeb-5-r.4`. Due to Live2D license agreements (including the Live2D Proprietary Software License Agreement and Live2D Open Software License Agreement), this project cannot include the source code of Cubism SDK for Web.
If you only need to use Cubism 2 models, you can skip this step. The code in this repository complies with the Redistributable Code terms of the Live2D license agreements.
Once completed, use the following command to compile and bundle the project.


```bash
npm run build
```

The TypeScript code in the `src` directory is compiled into the `build` directory, and the code in the `build` directory is further bundled into the `dist` directory.
To support both Cubism 2 and Cubism 3 (and newer) models while minimizing code size, Cubism Core and related code are loaded dynamically based on the detected model version.

## Deploy

After making modifications locally, you can deploy the modified project on a server or load it via a CDN. To make it easier to customize, you can fork this repository and push your modified content to your own repository using `git push`.

### Using jsDelivr CDN

To load forked repository via jsDelivr, the usage method becomes:

```html
<script src="https://fastly.jsdelivr.net/gh/username/live2d-widget@latest/autoload.js"></script>
```

Replace `username` with your GitHub username. To ensure the content of the CDN is refreshed correctly, you need to create a new git tag and push it to the GitHub repository. Otherwise, `@latest` in the URL will still point to the previous version. Additionally, CDN itself has caching, so the changes may take some time to take effect.

### Using Cloudflare Pages

You can also deploy using Cloudflare Pages. Create a new project in Cloudflare Pages and select your forked repository. Then, set the build command to `npm run build`. Once configured, Cloudflare Pages will automatically build and deploy your project.

### Self-host

Alternatively, you can directly host these files on your server instead of loading them via CDN.

- Clone the forked repository onto your server, or upload the local files to the website directory on the server using `ftp` or similar methods.
- If you are deploying a static blog using Hexo or similar tools, place the code of this project in the blog's source file directory (e.g., the `source` directory). When redeploying the blog, the relevant files will be automatically uploaded to the corresponding paths. To prevent these files from being incorrectly modified by Hexo plugins, you may need to set `skip_render`.

Afterwards, the entire project can be accessed through your domain name. You can try opening the `autoload.js` and `live2d.min.js` files in your browser and confirm that their content is complete and correct.
If everything is normal, you can proceed to modify the constant `live2d_path` in `autoload.js` to the URL of the `dist` directory. For example, if you can access `live2d.min.js` through the following URL:

```
https://example.com/path/to/live2d-widget/dist/live2d.min.js
```

then modify the value of `live2d_path` to:

```
https://example.com/path/to/live2d-widget/dist/
```

Make sure to include the trailing `/` in the path.
Once done, add the following code to the interface where you want to add the live2d-widget:

```html
<script src="https://example.com/path/to/live2d-widget/dist/autoload.js"></script>
```

This will load the widget.

## Thanks

<a href="https://www.browserstack.com/">
<picture>
<source media="(prefers-color-scheme: dark)" height="80" srcset="https://d98b8t1nnulk5.cloudfront.net/production/images/layout/logo-header.png?1469004780">
<source media="(prefers-color-scheme: light)" height="80" srcset="https://live.browserstack.com/images/opensource/browserstack-logo.svg">
<img alt="BrowserStack Logo" height="80" src="https://live.browserstack.com/images/opensource/browserstack-logo.svg">
</picture>
</a>

> Thanks to [BrowserStack](https://www.browserstack.com/) for providing the infrastructure that allows us to test in real browsers!

<a href="https://www.jsdelivr.com">
<picture>
<source media="(prefers-color-scheme: dark)" height="80" srcset="https://raw.githubusercontent.com/jsdelivr/jsdelivr-media/master/white/svg/jsdelivr-logo-horizontal.svg">
<source media="(prefers-color-scheme: light)" height="80" srcset="https://raw.githubusercontent.com/jsdelivr/jsdelivr-media/master/default/svg/jsdelivr-logo-horizontal.svg">
<img alt="jsDelivr Logo" height="80" src="https://raw.githubusercontent.com/jsdelivr/jsdelivr-media/master/default/svg/jsdelivr-logo-horizontal.svg">
</picture>
</a>

> Thanks to jsDelivr for providing public CDN service.

Thanks fghrsh for providing API service.

Thanks to [Hitokoto](https://hitokoto.cn) for providing the sentence API.

When you click on the paper airplane button of the virtual assistant, a hidden surprise will appear. This feature is from [WebsiteAsteroids](http://www.websiteasteroids.com).

## More

The code is modified based on this blog post:
https://www.fghrsh.net/post/123.html

For more information, you can refer to the following links:
https://nocilol.me/archives/lab/add-dynamic-poster-girl-with-live2d-to-your-blog-02
https://github.com/guansss/pixi-live2d-display

For more models:
https://github.com/zenghongtu/live2d-model-assets

In addition to that, there are desktop versions available:
https://github.com/TSKI433/hime-display
https://github.com/amorist/platelet
https://github.com/akiroz/Live2D-Widget
https://github.com/zenghongtu/PPet
https://github.com/LikeNeko/L2dPetForMac

And also Wallpaper Engine:
https://github.com/guansss/nep-live2d

Official Live2D websites:
https://www.live2d.com/en/

## License

This repository does not contain any models. The copyrights of all Live2D models, images, and motion data used for demonstration purposes belong to their respective original authors. They are provided for research and learning purposes only and should not be used for commercial purposes.

The code in this repository (excluding parts covered by the Live2D Proprietary Software License and the Live2D Open Software License) is released under the GNU General Public License v3
http://www.gnu.org/licenses/gpl-3.0.html

Please comply with the relevant licenses when using any Live2D-related code:

License for Live2D Cubism SDK 2.1:
[Live2D SDK License Agreement (Public)](https://docs.google.com/document/d/10tz1WrycskzGGBOhrAfGiTSsgmyFy8D9yHx9r_PsN8I/)

License for Live2D Cubism SDK 5:
Live2D Cubism Core is provided under the Live2D Proprietary Software License.
https://www.live2d.com/eula/live2d-proprietary-software-license-agreement_en.html
Live2D Cubism Components are provided under the Live2D Open Software License.
https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html

## Update Log

Starting from January 1, 2020, this project no longer depends on jQuery.

Starting from November 1, 2022, this project no longer requires users to separately load Font Awesome.
Loading