Giter VIP home page Giter VIP logo

birdboxbuilder's People

Contributors

clarencechen avatar paulkass avatar

Watchers

 avatar  avatar  avatar

birdboxbuilder's Issues

New control system

I was thinking of implementing this control system here.
Another demo can be found here: demo.
I want some of your feeback before proceeding with this control system.

Add a tree

Add the capability of adding a tree to the scene.

Add object rotation

We need to add buttons that will modify the rotation of the selected object.

Initial rotation of plank

The plank should always be straight unless rotation was changed by the Gizmo controls. Should be worked on after #16 is closed.

Add easier camera jumping

On double click anywhere while no object is selected, the camera does the following:

  • The camera jumps to the intersection of the ray from the camera to the reticle with the XZ plane while retaining it's y value.
  • The camera looks at it's previous position.

Adding boards to build bird box

We need to add the capability of a user to add boards and change their dimensions in the space provided by the web browser. Some points to be considered:

  • The WASD keys should be reserved for camera movement.
  • The board should move along with the reticle until placed.
  • The arrow keys should control the rotation of the board.
  • The user should be able to modify the dimensions of the board.

Fix tree trunk positioning

The tree trunk so far can only appear at the origin. The tree should be able to appear anywhere on the map.

Differentiating between dragging and clicking

Consider this situation: When the user's reticle is on an object, and the user wants to drag the mouse button. The raycaster ticks off, and the tree is dragged. This is not the intended behavior. So we need to add some sort of listener that differentiates between a click and a drag so that these two events don't fire off together.

Pan features need to be double-checked

I tried pressing various buttons on my physical mouse, none of them initialized any visible pan features.

Their activation should probably be double-checked.

Using this texture generator

Possibly use this little texture generator created by the same dude that made Three JS.

(Github of project)[https://github.com/mrdoob/texgen.js]

Clean up tree code

Right now, the 1 key activates both tree #1 and the planks.
Change the tree #1 key to TAB and use the reticle function to hold tree.

Add a "language pack" to the menu buttons

So far, the button's titles are just the types of the function they perform. However, these titles are not as beautiful as the user wants them to be. So we need to add a mapping of the types to more appropriate messages for these buttons.

Menu response event

So far the menu opens when the user presses the "F" key. As we want this app to be as key-less as possible, I was wondering if there is a more intuitive, activation method.

Unselect feature

If the user selects an object, and then decides to unselect the object, the object should not change the position. You can rig the feature to some button, and @paulkass will hook it up to a button later.

Object placement bug

When the camera moves and the plank is placed, the plank appears at the origin vs. where the user is pointing.

Rotation controls color

Make the gizmo rotation controls always colored violet, to contrast with the environment. Also increase the width of the line.

Buttons in selectedObject menu tab

When the selected object menu tab is disabled, so should the buttons in the tab, because sometimes the user is in the tab when it is disabled. Therefore the buttons should be disabled.

Object selection

When a user looks at an object and clicks on it, some actions are executed including:

  • Object highlighting
  • User camera looks at the object

Include the license

The licenses for the examples should be included as per the license statement included in the github repository of Three JS. More information here.

Add gizmo-related buttons

Add buttons to the selected object menu to exploit the capabilities of the transform controllers.

Pan and Rotate integration

The pan and rotation can't happen at the same time as of now. Preferably, a user should be able to pan and rotate and the same time.

Change default plank dimensions

The default plank dimensions is a box, but the planks are actually thin rectangular solids. So the geometry of the planks should be adjusted accordingly.

Tree too big

The current tree is too big compared to camera. Make a more reasonable height compared to camera size.

Grid Toggle

Add a button to turn the grid off and on.

Implement plank size adjusting

We can either try to get the gizmo working, or we can implement our own, where the use will be able to adjust the vertices of the planks with clicks. I think that this should be our next step.

Gizmo makes the webiste laggy

After placing an object, the website lags pretty bad. This is probably due to the gizmo doing something really process-consuming. Also, the lag increases with time, so there is probably some recursive loop there that we don't need.

Reticle Rotation Feature

So the big red circle is an enlarged user reticle that will be always facing the camera and act as a selection indicator. So far, the reticle only rotates with the camera around the y-axis. It should rotate on all axes, so that the camera.getWorldDirection() vector is always perpendicular to it's surface.

Add tracer lines

When an object is selected, there must be blue tracer lines that represent the location of the object in the space.

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.