Mobile 3D made simple. As simple, as this live demo:
<!DOCTYPE html>
<script src="suica.js"></script>
<suica>
<demo>
<cube>
</suica>
Go to boytchev.github.io/suica for more details.
Mobile 3D made simple
Home Page: https://boytchev.github.io/suica/
License: GNU General Public License v3.0
Mobile 3D made simple. As simple, as this live demo:
<!DOCTYPE html>
<script src="suica.js"></script>
<suica>
<demo>
<cube>
</suica>
Go to boytchev.github.io/suica for more details.
Using controllers without head VR. Idea seen here:
https://twitter.com/seflless/status/1495485131494154245
Consider adding embedded help system, so that programmers can use the console to quickly get info about a Suica command. For example, tube.help
may contain the constructor syntax of class tube
.
Easier setting of dotted lines (incl. wireframed objects)
Clicking on objects do not change their color.
When example events-find-position.html is run in fullscreen mode, the mouse position is not calculated correcty.
Redesign onTime to match the other events (this will free the name onTime)
When an object is used as a point, its center is used. So, it could be possible to make a segment between two circles, eliminating the need to specify their centers.
Cubes do not react when they go under the mouse pointer
Consider replacing the use of Suica.current with suica, which is the lastest Suica instance too.
The user guide is too big. Split its sections into individual files.
The labels of axis should be reddish, not black. See example:
https://boytchev.github.io/suica/examples/spin-orientation.html
Importing GLTF models, exporting scenes or part of scenes to GLTF
A possibility to define custom shape, for example, by a sequence of points, or by Canvas2D shape, etc.
Almost all examples with are not quite smooth when run on a very old laptop. Every second or two the image jumps to the left and returns back quickly.
Defining curves and surfaces via control points.
Easy definition of rotational solids
Support various orientations of the coordinate system: at least Y-up and Z-up
The snapshot does not correspond to the output. See example:
https://boytchev.github.io/suica/examples/polygon.html
The function random with parameter a 3D object could return a random point inside the object.
Proposal: a global variable its
equal to the latest created Suica object. This will make it possible to set custom properties of objects without using style
and without giving a name.
With name:
a = cube( );
a.color = 'linen';
With style
:
cube( ).style({color: 'linen'});
The new proposed its
:
cube( );
its.color = 'linen';
Accessing point's coordinates as variables called x, y and z, in addition to the old way as array indices 0, 1 and 2.
Static initialization blocks are not supported in Safari
Drawings have fill
and stroke
, so fillAndStroke
might be unnecessary. However, currently both fill
and stroke
initiate a new path. If they can reuse the path, they can set a flag, so the path is created only when a path-modification command is issues, like moveTo
, lineTo
and curveTo
.
Allow lineTo to have several points and to draw complex line. So:
lineTo( 1, 2, 3, 4, 5, 6 );
would be equivalent to:
lineTo( 1, 2 );
lineTo( 3, 4 );
lineTo( 5, 6 );
and
<lineTo point="1, 2, 3, 4, 5, 6">
would be equivalent to:
<lineTo point="1, 2">
<lineTo point="3, 4">
<lineTo point="5, 6">
Example:
This is equivalent to:
a = circle( [40,0,10], 15, 'blue' );
b = a.clone;
b.center = [10,10,2];
VR mode for advance glasses (e.g. Oculus Quest 2), for simple VR glasses (that use smartphone split screen) and for anaglyph glasses.
Easier way to activate Suica in full screen mode or full window mode
Possibility to construct objects with CSG
Drawing commands (moveTo, lineTo, curveTo, arc) can be reused to define paths for extruded 3D objects. Internally they will have different implementation, but this different will be hidden from the user.
Consider this info:
It is possible to make classes that act like functions, e.g. the same code will handle a = new cube(...)
and a=cube(...)
Cloning default points makes them square. See example:
https://boytchev.github.io/suica/examples/clone.html
Check and fix objects at different coordinate system orientations. Cuboids might be OK, but cylinders are not.
Some drawing tags like moveTo
and lineTo
have parameter center
. The name point
is more appropriate.
Objects may have onUpdate callback activated every frame. It may implement object-specific behaviour (e.g. animation).
Some attribute parsers may make the code simpler and easier to understand. For example, parser of exclusive boolean values (see example) or parsers of array of points.
Example of exclusive attributes:
<spline ... closed>
<spline ... closed="true">
<spline ... closed="1">
<spline ... closed="yes">
<spline ... open>
<spline ... open="true">
<spline ... open="1">
<spline ... open="yes">
3D text (some default font as well as possibility to change it)
Clicking on pawn has no effect
Hovering the mouse over the segments has no effect.
... this would require regeneration of tube's geometry.
A feature to create custom 3D objects extruded from 2D shapes.
Easier integration with Moodle
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.