paulkass / birdboxbuilder Goto Github PK
View Code? Open in Web Editor NEWInteractive BirdBox Builder
Interactive BirdBox Builder
Add the capability of adding a tree to the scene.
Orbit controls rotate doesn't work because the target is disabled.
Before an object is placed, it should be a wireframe display.
The planks are not displayed in firefox after the key combination was pressed. No console errors were provided either.
Move the "language pack" handlers into a separate file and a JSON object.
We need to add buttons that will modify the rotation of the selected object.
The plank should always be straight unless rotation was changed by the Gizmo controls. Should be worked on after #16 is closed.
On double click anywhere while no object is selected, the camera does the following:
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 tree trunk so far can only appear at the origin. The tree should be able to appear anywhere on the map.
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.
I tried pressing various buttons on my physical mouse, none of them initialized any visible pan features.
Their activation should probably be double-checked.
Possibly use this little texture generator created by the same dude that made Three JS.
(Github of project)[https://github.com/mrdoob/texgen.js]
This button makes the object unselected.
Make sure that a user recognizes that a selected object was in fact selected by him and it's at his disposal.
Place button is not disabled when the object is unselected.
The feature is not behaving properly. It jumps to a place that is rather random.
We should implement this system to control the objects: demo.
Objects are sometimes placed below the plane.
Add some sort of splash screen to let the app load all the necessary resources so that they will be readily available when the user decides to place them.
Maybe model the ground after this demo.
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.
Buttons in the Menu should reside in a table for better "beauty".
Add a window resize function to account for window resizes while the app is running.
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.
Add a plank with a hole geometry for the front edge of the bird box.
Camera sometimes goes below the plane on rotation.
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.
Make the bird hole plank select-able and operat-able just like a regular plank.
When the camera moves and the plank is placed, the plank appears at the origin vs. where the user is pointing.
Make the gizmo rotation controls always colored violet, to contrast with the environment. Also increase the width of the line.
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.
When a user looks at an object and clicks on it, some actions are executed including:
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 buttons to the selected object menu to exploit the capabilities of the transform controllers.
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.
When a user presses a toggle button, the reticle follows the selected object and vice versa.
Instead of a blank splash screen, add a progress bar reflecting the progress in loading the resources.
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.
The current tree is too big compared to camera. Make a more reasonable height compared to camera size.
Permanently enable rotation snap.
Add a button to turn the grid off and on.
Objects that are viewed with the grass in the background are transparent.
Add the selection to all objects, not just planks.
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.
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.
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.
When an object is selected, there must be blue tracer lines that represent the location of the object in the space.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.