Giter Club home page Giter Club logo

lightdance-editor's People

Contributors

1owo1 avatar alanhsiu avatar arthurnieh avatar caffrey928 avatar chalkman071 avatar dienruei123 avatar durant42040 avatar fetthsiao avatar fiona1121 avatar fyrichie avatar gapfang avatar hsiang20 avatar hsieh22 avatar justhowww avatar kenchu123 avatar kkyzl avatar lin-1214 avatar madmaxieee avatar mecoli1219 avatar noidname01 avatar pinru-huang avatar rakechen-0307 avatar redxouls avatar seanfu56 avatar stanthemaker avatar tom1484 avatar vwvwmm avatar walkerhsu avatar yuhsinchan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

lightdance-editor's Issues

Backend: Export & import data

Is your feature request related to a problem? Please describe.

No

Describe the solution you'd like

use restful api and get data from redis

Describe alternatives you've considered

no

Additional context

Connect Dancer Graphql API

Is your feature request related to a problem? Please describe.

We want to get dancer data from the backend.

Describe the solution you'd like

Call dancer api.

Describe alternatives you've considered

None.

Additional context

None.

Modify the folder structure and fix some bugs.

Is your feature request related to a problem? Please describe.

None

Describe the solution you'd like

Modify the folder structure to satisfy the following architecture.
image

Describe alternatives you've considered

None
Additional context

None

3D Editing

Is your feature request related to a problem? Please describe.
Editing feature is not available so far.

Describe the solution you'd like

  1. Add dragControl to drag dancers on the 2D plane.
  2. Add partSelector to select parts and change alpha and color.

Describe alternatives you've considered

  1. Use the 2D editor instead.

Additional context
Nope.

Optimize playing performance.

Describe the bug

The origin implementation makes the performance bad. The player will update their status after a delay.

To Reproduce

Just press the play button.

Expected behavior

Expected the players to changing smoothly.

Screenshots

None

Additional context

None

Connect Subscription APIs for co-work & fix some bugs and typo in editor

Is your feature request related to a problem? Please describe.

  1. To support co-work, we need to connect subscription api to change frontend data.
  2. 'await' is needed when calling some functions in "edit.ts"
  3. typo in /graphql/mutation.ts

Describe the solution you'd like
Use ApolloClient.subscribe to connect subscription api.

Describe alternatives you've considered
None

Additional context
None

UI/UX improvement regarding Light Editor

Is your feature request related to a problem? Please describe.

  • the light editor is not particularly appealing to the eyes, nor easy to use

Describe the solution you'd like

  • Separate dancer/part selector and parameter sliders
  • rewrite dancer/part selector
  • rewrite parameter sliders, add color selector

Describe alternatives you've considered

None

Additional context

Fix the pull_request template. We don't use Jira in this project.

Describe the bug

In the pull request template, it requires user to link to the JIRA issue. However, we don't use JIRA in this project.

To Reproduce

Just create a pull request.

Expected behavior

A user should link to the GitHub issue.

Screenshots

None.

Additional context

None.

Backend login

Is your feature request related to a problem? Please describe.

  1. Recently, we use header to send userID, name (without login), which is not quite correct.

Describe the solution you'd like

  1. Using restful api to get token, then send token to graphql server by authorization header

Describe alternatives you've considered

  1. No restful api, send userID, password to graphql server by header(Not good?)

Additional context
No

Fix TypeScript errors in commandCenter & file (in components)

Describe the bug
TypeScript errors
All variables' types in these file are "any" at present, but in TypeScript, they should have specific types instead of any.

To Reproduce
See code in vscode, and it would show related errors.

Expected behavior
No errors showed in code.

Screenshots
An example in /commandCenter/agent.tsx
截圖 2022-01-27 下午10 35 28

Additional context

Remove redundant folders and files, update docs and configure Docker.

Is your feature request related to a problem? Please describe.

We have modified folder structures from issue #21 and pull request #24.

Hence, the README.md, package.json, and .lock files need to be updated, and some files should be removed.

Besides, I will configure Docker for development and production.

Describe the solution you'd like

Update

  • README.md
  • package.json
  • package.lock
  • update components' names to uppercase

Move

  • .eslintrc.js
  • .prettierignore
  • .prettierrc.json
  • .dockerignore
  • Dockerfile

Remove

  • src
  • music
  • data
  • asset
  • config
  • test

Copy the backend server from our local works

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
Just copy our work

Describe alternatives you've considered
None

Additional context
None

Add hotkey support.

Is your feature request related to a problem? Please describe.

We want to add more hotkeys to the editor.

Ex. ctrl + c/v/s/a

Describe the solution you'd like

https://react-hotkeys-hook.vercel.app/

Describe alternatives you've considered

Use event listeners.

Additional context

None.

More UI fix and improvements

Is your feature request related to a problem? Please describe.

the previous pr still has a few flaws, and now I'm gonna fix them

Describe the solution you'd like

add editor layout preference to settings
beautify layout code structure

Describe alternatives you've considered

none

Additional context

editor state no built yet

Is your feature request related to a problem? Please describe.

no

Describe the solution you'd like

add editor state

Describe alternatives you've considered

none

Additional context

Markers in Wavesurfer & Edit and Add button turn to Cancel after clicked

Is your feature request related to a problem? Please describe.

  1. Users cannot know where the frames in wavesurfer are. Add markers can solve this problem.
  2. There isn't a intuitive way to cancel Edit or Add.

Describe the solution you'd like

  1. use wavesurfer.js plugins Markers to add markers.
  2. Edit and Add buttons become Cancel until changes are saved or canceled. Also, reset status in simulator to origin.

Describe alternatives you've considered
None

Additional context
None

Fixing tsc

Describe the bug

type errors

To Reproduce

tsc

Expected behavior

Screenshots

Additional context

Backend: trivial problems of apis

Describe the bugs

  • addControlFrame with initail fade setting
  • editControlFrame param name optimizes
  • deleteControlFrame response
  • getFade api
  • variable name optimize
  • addPosFrame and EditPosMap merge ?

To Reproduce

trivial

Add Typescript support to the editor.

Is your feature request related to a problem? Please describe.

We decided to use Typescript in devlopment, so we have to make Webpack support typescripts.

Describe the solution you'd like

Modify Webpack configuration files.

Describe alternatives you've considered

Additional context

None.

Backend: editControlMap bug

Describe the bug

editcontrolmap broken

To Reproduce

use editcontrolmap api

Expected behavior

Screenshots

Additional context

InitDB doesn't run correctly.

Describe the bug

We forget to call RequestEditPosition and RequestEditControl before editing them.

To Reproduce

node initDB.js

Expected behavior

Put 2021's data into mongodb.

Screenshots

None.

Additional context

None.

Backend delete "editing" when disconnect

Describe the bug

  1. disconnect will not delete editing

To Reproduce

  1. request(Control/Position)Editing
  2. close playground
  3. ERROR: "editing" of frame is not null

Expected behavior

"editing" of frame should be null

Screenshots

Additional context

Add typeScript for slices

Is your feature request related to a problem? Please describe.

LightDance-Editor is a huge project, adding typescript makes it more friendly and easy-to-read for new contributors. Also , typescript helps avoid unnecessary type mismatch or error during developing.
This issue is dedicated to convert /components/simulator & /slices to typescript

Describe the solution you'd like

Wishing 2 goals above are achieved.
Describe alternatives you've considered

no
Additional context

image
there are many errors, which doesn't affect the performance of App, to be solved

Operations for effect lists

Is your feature request related to a problem? Please describe.
Complete operations [add, delete, apply] for effect lists.

Describe the solution you'd like
Use append + sort for apply.

Describe alternatives you've considered
None

Additional context
None

Backend: merge ADD and EDIT control api and add cancel edit api

Is your feature request related to a problem? Please describe.

  1. The addControlFrame and editControlMap apis can be written in one api
  2. We don't have cancel edit api now

Describe the solution you'd like

  1. Desert the addControlFrame api and merge its function into editControlMap api
  2. add cancel edit api

Additional context

The editControlMap api used to accept frameID as arg. However, since we need start time to add new frame, the arg changes from frameID to start time.

Refactor the architecture to support Apollo client.

Is your feature request related to a problem? Please describe.

It's not easy to combine Apollo client with Redux since the Apollo client does internal caching.

We should make states from the backend (controlMap, controlRecord, posMap, posRecord, colorMap) store in Apollo cache.

Besides, we also want our third-party classes (three, wavesurfer) to interact with the cache without using useEffect.

Also, try Apollo reactive variables for more client states instead of Redux store.

Describe the solution you'd like

  1. Construct a huge hook for interacting with Apollo cache and relative states. Put three and wavesurfer inside it. (useThreeController, useWavesurfer)
  2. Construct a huge class for interacting with Apollo client cache. Put three and wavesurfer inside it as instances. React component can still get the data by useQuery since it gets data from the same cache.
  3. Build a own state manager for state with performance issues.

Describe alternatives you've considered

None.

Additional context

Backend: exportData not the origin data

Describe the bug

Data of export Data is not correct

To Reproduce

you can found something weird in export.json

Expected behavior

correct data

Screenshots

Additional context

Add EffectList

Is your feature request related to a problem? Please describe.

Effects (a set of multiple frames) application to control record is considered needed for the user

Describe the solution you'd like

Add effectList to support following feature:

  1. Effects preview and selection
  2. Inserting effect to control record
  3. Adding custom effects to effect list

Additional context
Further feature to improve user experience for effect list:

  • allow to edit a frame's time
  • draggable labels for waveSurfer to edit frame's time

Add new posRecord format support.

Is your feature request related to a problem? Please describe.

We decided to have a new format of posRecord. Hence, we should modify the code to support the new format.
color
posRecord

\\array of IDs
['12345', '23456' ...]

posMap

{
  '12345': {
    "start": 0,
    "pos": {
      "1_191": {
        "x": -442.7718580296398,
        "y": -252.1772331816769,
        "z": -252.1772331816769
      },
      "2_ke": {
        "x": -293.6416750973868,
        "y": -264.31545805777137,
        "z": -264.31545805777137
      },
      "3_zhou": {
        "x": -138.2022624530855,
        "y": -270.07074017584773,
        "z": -270.07074017584773
      },
      "4_kuang": {
        "x": 28.613079891473376,
        "y": -267.9222789292476,
        "z": -267.9222789292476
      },
      "5_lin": {
        "x": 203.86167501108423,
        "y": -262.2754880005415,
        "z": -262.2754880005415
      },
      "6_liao": {
        "x": -468.5820711579605,
        "y": -7.3377642086082915,
        "z": -7.3377642086082915
      },
      "7_mon": {
        "x": -284.76139788261054,
        "y": 3.1311015020976924,
        "z": 3.1311015020976924
      },
      "8_fan": {
        "x": -103.48413741825863,
        "y": 21.742391194094637,
        "z": 21.742391194094637
      },
      "9_chia": {
        "x": 58.21831712028427,
        "y": 29.160014683812392,
        "z": 29.160014683812392
      },
      "10_lu": {
        "x": 232.76372155583397,
        "y": 33.13143309098655,
        "z": 33.13143309098655
      },
      "1_sw": {
        "x": -599.5792867265321,
        "y": -333.7327965887821,
        "z": -333.7327965887821
      },
      "2_sw": {
        "x": -550.3384243140316,
        "y": -284.74304865624,
        "z": -284.74304865624
      },
      "3_sw": {
        "x": -603.9760248612921,
        "y": -15.778998425016482,
        "z": -15.778998425016482
      },
      "4_sw": {
        "x": -552.1787181424224,
        "y": 17.420497486803185,
        "z": 17.420497486803185
      },
      "5_sw": {
        "x": 445.41199683688524,
        "y": -293.02880795483486,
        "z": -293.02880795483486
      },
      "6_sw": {
        "x": 488.9454375268913,
        "y": -250.5843343942272,
        "z": -250.5843343942272
      },
      "7_sw": {
        "x": 535.2955518764238,
        "y": -196.6074811364183,
        "z": -196.6074811364183
      },
      "8_sw": {
        "x": 441.50144207035487,
        "y": -15.384031548741461,
        "z": -15.384031548741461
      },
      "9_sw": {
        "x": 489.24915097340704,
        "y": 22.11243053364842,
        "z": 22.11243053364842
      },
      "10_sw": {
        "x": 546.7498041637546,
        "y": 64.53520563582373,
        "z": 64.53520563582373
      }
    }
  }
}

Describe the solution you'd like

Modify the related codes.
Describe alternatives you've considered

None.
Additional context

None.

Connect Request and Cancel edit permission APIs for co-work

Is your feature request related to a problem? Please describe.

We hope to lock up the frames if other editor is editing.
Describe the solution you'd like

Request and Cancel edit permission APIs
Describe alternatives you've considered

none
Additional context

We also add an unique userID for every user.

Generate new controlMap and controlRecord sample JSON files.

Is your feature request related to a problem? Please describe.

We want to switch to a new format. Hence, the issue is for requesting sample files.

Describe the solution you'd like

Add a new helper file utils/transformControl.js.
Usage:

node utils/transformControl.js <input_old_control.json> <output_controlRecord.json> <output_controlMap.json>

Describe alternatives you've considered

None

Additional context

None

Add new component to the frontend.

Is your feature request related to a problem? Please describe.

None.

Describe the solution you'd like

Just add a new conponent.

Describe alternatives you've considered

None.

Additional context

None.

New layout for editor frontend

Is your feature request related to a problem? Please describe.

Current UI layout is not very user friendly and efficient on content display.

Describe the solution you'd like

Create a new layout to be selected by default and a few more configurations optimizing different workflow, allowing users to between once another.

Describe alternatives you've considered

make an adobe Premiere style multi-track editor frontend

Additional context

None

Editor-server first edition (with graphql finished)

Is your feature request related to a problem? Please describe.

Add editor-server for light dance editor


Describe the solution you'd like

Use type-graphql , apollo-server, and mongodb

Additional context

We'll first finish primitive backend server in the first PR, and leave the rest features in upcoming PRs

link editor to editor-server with graphql

Is your feature request related to a problem? Please describe.

We want to implement following co-edit functions:

  1. useQuery to query if a frame is being edited
  2. useMutation to share an editor's result to others
    Describe the solution you'd like
  1. Add useQuery in globalSlice
  2. Add useMutation and modify state if needed in globalSlice
    Describe alternatives you've considered

none
Additional context

none

Wavesurfer switch is reversed

Describe the bug

Wavesurfer switch is reversed

To Reproduce

just open the editor

Expected behavior

trivial

Screenshots

Additional context

wavesurfer Js to Ts & fix bugs in wavesurfer

Describe the bug

  1. change controlRecord to controlMap would cause bugs to update markers in wavesurfer
  2. fix ts errors in code

To Reproduce

  1. can't see markers
  2. ts errors only shows in code

Expected behavior

  1. normally see markers

Screenshots

Additional context

Add new controlRecord format support.

Is your feature request related to a problem? Please describe.

We decided to have a new format of controlRecord. Hence, we should modify the code to support the new format.

color

// a mapping of color name to color value
{
  "red1": "#ff0000", 
}

controlRecord

// a list of id
["12345", "56789", "123123", "345234"]

controlMap

// a mapping of id to status
{
  '12345': {
    "start": 0,
    "fade": 0,
    "status": {
      "1_191": {
	// fiber
        "F_HEAD": { color: "red1", alpha: 0 },
	// el
        "B_BELT": 0,
        "B_BODY": 0,
        "B_L_ARM": 0,
        "B_L_FOREARM": 0,
        "B_L_LEG": 0,
        "B_L_PANT": 0,
        "B_L_SHOE": 0,
        "B_MASK": 0,
        "B_R_ARM": 0,
        "B_R_FOREARM": 0,
        "B_R_LEG": 0,
        "B_R_PANT": 0,
        "B_R_SHOE": 0,
        "S_L_HAND": 0,
        "S_L_PANT": 0,
        "S_BELT": 0,
        "S_COLLAR": 0,
        "S_GLASSES": 0,
        "S_HAT": 0,
        "S_L_COAT": 0,
        "S_L_SHOE": 0,
        "S_NECKTIE": 0,
        "S_R_COAT": 0,
        "S_R_HAND": 0,
        "S_R_PANT": 0,
        "S_R_SHOE": 0,
	// led
        "LED_L_SHOULDER": { "src": "bl_shoulder", "alpha": 0 },
        "LED_R_SHOULDER": { "src": "bl_shoulder", "alpha": 0 },
        "LED_NECKTIE": { "src": "bl_neckti e", "alpha": 0 },
        "LED_BELT": { "src": "bl_belt", "alpha": 0 },
        "LED_R_SHOE": { "src": "bl_shoe", "alpha": 0 },
        "LED_L_SHOE": { "src": "bl_shoe", "alpha": 0 }
      }
    }
  }
}

Describe the solution you'd like

Modify the codes.

Describe alternatives you've considered

None.

Additional context

None.

3D simulation

Is your feature request related to a problem? Please describe.

Since it's hard to see the dancer in multi-viewpoint, a 3D simulation can solve this problem.

Describe the solution you'd like

With Three.js its possible to simulate the dancers from different viewpoint and texture.

Describe alternatives you've considered

None

Additional context

The 3D simulation should have following fetures:

  1. The simulation should be smooth enough (>60fps)
  2. Change color of LED or EL
  3. The player can move with given position accordingly.
  4. The player texture should be easy to draw and generate.
  5. Pose and movement of body is optional.

Fix Conflicts and Delete .js in Editor-35

Describe the bug

Pull request Editor-35 isn't the right one. Please don't bother it
This issue is to fix some problem in editor-35
To Reproduce

Expected behavior

Screenshots

Additional context

Fix TypeScript errors in tools & presets & bar (in components)

Describe the bug
TypeScript errors
All variables' types are "any" at present, but in TypeScript, they should have specific types instead of any.

To Reproduce
See code in vscode, and it would show related errors.

Expected behavior
No errors showed in code.

Screenshots
For example, in /component/presets/presetsList.tsx, line: 63
截圖 2022-01-24 下午10 22 41

Additional context

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.