Comments (5)
Hi,
The crash seems to be in the GLU tesselation code. As a workaround, try
changing the winding direction of your polygon, and make sure the polygon
does not self-intersect. I suspect the tesselator is fast rather than
robust. Probably Stage should do some checks on your polygon. Let me know
if you figure out if some assumption is violated. I will take a look at
Stage's related code meanwhile in case I can see a bug.
R/
On Fri, Oct 19, 2012 at 3:16 PM, kbogert [email protected] wrote:
I'm seeing a reproducible segfault in libGLU.so when loading a world file
in which a position model has a block. Removing the block prevents the
crash, as does running stage without graphics enabled.The example world file is at:
https://kforge.ros.org/navigation/tutorials/file/d1f3dda4fd5a/roomba_stage/roomba_lse_arena.worldStarting program: /opt/ros/fuerte/stacks/stage/bin/stageros
/home/ros/fuerte_workspace/navigation_tutorials/roomba_stage/roomba_lse_arena.world
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[New Thread 0x42720b40 (LWP 7706)]
[New Thread 0x42921b40 (LWP 7707)]
[New Thread 0x42d00b40 (LWP 7708)]
[New Thread 0x43200b40 (LWP 7715)]
[New Thread 0x4516db40 (LWP 7719)]
[Loading
/home/ros/fuerte_workspace/navigation_tutorials/roomba_stage/roomba_lse_arena.world][New
Thread 0x45bcab40 (LWP 7720)]
[Image "./maps/lse_arena.pgm"]
warn: worldfile
/home/ros/fuerte_workspace/navigation_tutorials/roomba_stage/roomba_lse_arena.world:22
: property [laser_return] is defined but not used
(/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/worldfile.cc
WarnUnused)
warn: worldfile
/home/ros/fuerte_workspace/navigation_tutorials/roomba_stage/roomba_lse_arena.world:32
: property [color] is defined but not used
(/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/worldfile.cc
WarnUnused)
warn: worldfile
/home/ros/fuerte_workspace/navigation_tutorials/roomba_stage/roomba_lse_arena.world:8
: property [range_max] is defined but not used
(/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/worldfile.cc
WarnUnused)
warn: worldfile
/home/ros/fuerte_workspace/navigation_tutorials/roomba_stage/roomba_lse_arena.world:7
: property [range_min] is defined but not used
(/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/worldfile.cc
WarnUnused)
[ INFO] [1350446716.598520044]: found 1 position/laser pair in the file
[New Thread 0x45dcbb40 (LWP 7727)]Program received signal SIGSEGV, Segmentation fault.
0x4097c793 in __gl_pqSortInit (pq=0x843f9f8) at libtess/priorityq.c:132
132 j = r + 1;
(gdb) bt
#0 0x4097c793 in __gl_pqSortInit (pq=0x843f9f8) at libtess/priorityq.c:132
#1 #1 0x4097fb2e in InitPriorityQ
(tess=< optimized out>) at libtess/sweep.c:1251
#2 #2 __gl_computeInterior
(tess=0x8666078) at libtess/sweep.c:1321
#3 #3 0x40980900 in
gluTessEndPolygon (tess=0x8666078) at libtess/tess.c:540
#4 #4 0x40273d55 in
Stg::BlockGroup::BuildDisplayList (this=0x864a6d4) at
/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/blockgroup.cc:243
#5 #5 0x40274155 in
Stg::BlockGroup::CallDisplayList (this=0x864a6d4) at
/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/blockgroup.cc:288
#6 #6 0x4028857e in
Stg::Model::DrawBlocks (this=0x864a678) at
/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/model_draw.cc:253
#7 #7 0x402889b2 in
Stg::Model::DrawBlocksTree (this=0x864a678) at
/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/model_draw.cc:235
#8 #8 0x402adc73 in
Stg::Canvas::DrawBlocks (this=0x80bbfd0) at
/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/canvas.cc:717
#9 #9 0x402b5950 in
Stg::Canvas::renderFrame (this=0x80bbfd0) at
/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/canvas.cc:954
#10 #10 0x402ad7e1 in
Stg::Canvas::draw (this=0x80bbfd0) at
/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/canvas.cc:1321
#11 #11 0x40a74197 in
Fl_Gl_Window::flush() () from /usr/lib/i386-linux-gnu/libfltk_gl.so.1.1
#12 #12 0x405e6ee3 in Fl::flush() ()
from /usr/lib/i386-linux-gnu/libfltk.so.1.1
#13 #13 0x405e8645 in
Fl::wait(double) () from /usr/lib/i386-linux-gnu/libfltk.so.1.1
#14 #14 0x08059209 in main (argc=2,
argv=0xbffff004) at
/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/src/stageros.cpp:445(gdb) info locals
p = 0x8666f20
r = 0x8666f5c
i = 0x8666f5c
j = 0x8666f60
piv = 0x8666eb8
Stack = {{p = 0x8666f20, r = 0x8666f5c}, {p = 0xbfffe6b8, r = 0x404912c1},
{p = 0x866f600, r = 0x43337ff4}, {p = 0x41018899, r = 0x404912c1}, {p =
0x82e3de0, r = 0xb}, {p = 0x80cdd50, r = 0x404912c1}, {
p = 0x268, r = 0x2710}, {p = 0x48, r = 0x405c0470}, {p = 0x405c0478, r =
0x9}, {p = 0x40, r = 0x9}, {p = 0x3d8, r = 0x2710}, {p = 0x40, r =
0x405c0470}, {p = 0x405c0478, r = 0x0}, {p = 0x3c, r = 0x8}, {
p = 0x1, r = 0x50}, {p = 0x0, r = 0x404912c1}, {p = 0x0, r = 0x0}, {p =
0x8, r = 0x39}, {p = 0x5b, r = 0x6e}, {p = 0x77, r = 0x404912c1}, {p = 0x0,
r = 0x30}, {p = 0x0, r = 0x405bfff4}, {p = 0x0,
r = 0x2710}, {p = 0x110, r = 0x405c0470}, {p = 0x5b, r = 0x6e}, {p =
0x108, r = 0x22}, {p = 0x4, r = 0x2710}, {p = 0x88, r = 0x405c0470}, {p =
0x0, r = 0x0}, {p = 0x80, r = 0x11}, {p = 0x2, r = 0x98}, {
p = 0x0, r = 0x0}, {p = 0x0, r = 0x0}, {p = 0x11, r = 0x3a}, {p = 0x5b, r
= 0x6e}, {p = 0x77, r = 0x7c}, {p = 0x8660000, r = 0x86654c0}, {p = 0x0, r
= 0x405bfff4}, {p = 0x405c0440, r = 0x4097a520}, {
p = 0x80, r = 0x40493fec}, {p = 0x0, r = 0x0}, {p = 0x0, r = 0x409d0ff4},
{p = 0x86652c0, r = 0x8666d00}, {p = 0x866f484, r = 0x4097c20a}, {p =
0x108, r = 0x3ff00000}, {p = 0x0, r = 0x4097c993}, {
p = 0x843f9f8, r = 0x4097a520}, {p = 0x86652c0, r = 0x4097c5a0}, {p =
0x80, r = 0x3fc51eb8}, {p = 0x2e5096af, r = 0xdf238d35}}
top = < optimized out>
seed = 1409832680
(gdb) up
#1 #1 0x4097fb2e in InitPriorityQ
(tess=< optimized out>) at libtess/sweep.c:1251
1251 if (v != vHead || !pqInit( pq ) ) { /* _gl_pqSortInit /
(gdb) info locals
pq = 0x843f9f8
v = 0x866f430
vHead = 0x866f430
(gdb) up
#2 #2 __gl_computeInterior
(tess=0x8666078) at libtess/sweep.c:1321
1321 if ( !InitPriorityQ( tess ) ) return 0; / if error */
(gdb) info locals
v = < optimized out>
vNext = < optimized out>
(gdb) up
#3 #3 0x40980900 in
gluTessEndPolygon (tess=0x8666078) at libtess/tess.c:540
540 if ( !_gl_computeInterior( tess ) ) {
(gdb) info locals
mesh = < optimized out>
(gdb) up
#4 #4 0x40273d55 in
Stg::BlockGroup::BuildDisplayList (this=0x864a6d4) at
/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/blockgroup.cc:243
243
/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/blockgroup.cc:
No such file or directory.
(gdb) info locals
tobj = 0x8666078
geom = {pose = {_vptr.Pose = 0x8071dd8, x = 0, y = 0, z = 0, a = 0}, size
= {x = 0.33000000000000002, y = 0.33000000000000002, z =
0.10000000000000001}}
contours = {< std::_Vector_base< std::vector< double, std::allocator<
double> >, std::allocator< std::vector< double, std::allocator< double> > >= {
_M_impl = {< std::allocator< std::vector< double, std::allocator< double>= {< __gnu_cxx::new_allocator< std::vector< double, std::allocator<
double> > >> = {< No data fields>}, < No data fields>},
_M_start = 0x866aee8, _M_finish = 0x866aef4, _M_end_of_storage =
0x866aef4}}, < No data fields>}
c = < optimized out>�
Reply to this email directly or view it on GitHubhttps://github.com//issues/31.
from stage.
Hello,
As far as I can tell, the polygon looks ok. I'm testing with:
block
(
points 4
point[0] [0.16 0.16]
point[1] [-0.16 0.16]
point[2] [-0.16 -0.16]
point[3] [0.16 -0.16]
color "red"
)
I still see this crash if I reverse the order.
I'm running this on ubuntu 12.04 32 bit, stage is installed from ros
fuerte. I do not see this crash running ros electric's version on
ubuntu 11.10.
kdb
On 10/26/2012 05:48 PM, Richard Vaughan wrote:
Hi,
The crash seems to be in the GLU tesselation code. As a workaround, try
changing the winding direction of your polygon, and make sure the polygon
does not self-intersect. I suspect the tesselator is fast rather than
robust. Probably Stage should do some checks on your polygon. Let me know
if you figure out if some assumption is violated. I will take a look at
Stage's related code meanwhile in case I can see a bug.R/
On Fri, Oct 19, 2012 at 3:16 PM, kbogert [email protected]
wrote:I'm seeing a reproducible segfault in libGLU.so when loading a world
file
in which a position model has a block. Removing the block prevents the
crash, as does running stage without graphics enabled.The example world file is at:
https://kforge.ros.org/navigation/tutorials/file/d1f3dda4fd5a/roomba_stage/roomba_lse_arena.world
Starting program: /opt/ros/fuerte/stacks/stage/bin/stageros
/home/ros/fuerte_workspace/navigation_tutorials/roomba_stage/roomba_lse_arena.world
[Thread debugging using libthread_db enabled]
Using host libthread_db library
"/lib/i386-linux-gnu/libthread_db.so.1".
[New Thread 0x42720b40 (LWP 7706)]
[New Thread 0x42921b40 (LWP 7707)]
[New Thread 0x42d00b40 (LWP 7708)]
[New Thread 0x43200b40 (LWP 7715)]
[New Thread 0x4516db40 (LWP 7719)]
[Loading/home/ros/fuerte_workspace/navigation_tutorials/roomba_stage/roomba_lse_arena.world][New
Thread 0x45bcab40 (LWP 7720)]
[Image "./maps/lse_arena.pgm"]
warn: worldfile/home/ros/fuerte_workspace/navigation_tutorials/roomba_stage/roomba_lse_arena.world:22
: property [laser_return] is defined but not used(/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/worldfile.cc
WarnUnused)
warn: worldfile/home/ros/fuerte_workspace/navigation_tutorials/roomba_stage/roomba_lse_arena.world:32
: property [color] is defined but not used(/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/worldfile.cc
WarnUnused)
warn: worldfile/home/ros/fuerte_workspace/navigation_tutorials/roomba_stage/roomba_lse_arena.world:8
: property [range_max] is defined but not used(/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/worldfile.cc
WarnUnused)
warn: worldfile/home/ros/fuerte_workspace/navigation_tutorials/roomba_stage/roomba_lse_arena.world:7
: property [range_min] is defined but not used(/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/worldfile.cc
WarnUnused)
[ INFO] [1350446716.598520044]: found 1 position/laser pair in the file
[New Thread 0x45dcbb40 (LWP 7727)]Program received signal SIGSEGV, Segmentation fault.
0x4097c793 in __gl_pqSortInit (pq=0x843f9f8) at libtess/priorityq.c:132
132 j = r + 1;
(gdb) bt
#0 0x4097c793 in __gl_pqSortInit (pq=0x843f9f8) at
libtess/priorityq.c:132
#1 #1 0x4097fb2e in InitPriorityQ
(tess=< optimized out>) at libtess/sweep.c:1251
#2 #2 __gl_computeInterior
(tess=0x8666078) at libtess/sweep.c:1321
#3 #3 0x40980900 in
gluTessEndPolygon (tess=0x8666078) at libtess/tess.c:540
#4 #4 0x40273d55 in
Stg::BlockGroup::BuildDisplayList (this=0x864a6d4) at/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/blockgroup.cc:243
#5 #5 0x40274155 in
Stg::BlockGroup::CallDisplayList (this=0x864a6d4) at/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/blockgroup.cc:288
#6 #6 0x4028857e in
Stg::Model::DrawBlocks (this=0x864a678) at/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/model_draw.cc:253
#7 #7 0x402889b2 in
Stg::Model::DrawBlocksTree (this=0x864a678) at/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/model_draw.cc:235
#8 #8 0x402adc73 in
Stg::Canvas::DrawBlocks (this=0x80bbfd0) at/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/canvas.cc:717
#9 #9 0x402b5950 in
Stg::Canvas::renderFrame (this=0x80bbfd0) at/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/canvas.cc:954
#10 #10 0x402ad7e1 in
Stg::Canvas::draw (this=0x80bbfd0) at/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/canvas.cc:1321
#11 #11 0x40a74197 in
Fl_Gl_Window::flush() () from /usr/lib/i386-linux-gnu/libfltk_gl.so.1.1
#12 #12 0x405e6ee3 in
Fl::flush() ()
from /usr/lib/i386-linux-gnu/libfltk.so.1.1
#13 #13 0x405e8645 in
Fl::wait(double) () from /usr/lib/i386-linux-gnu/libfltk.so.1.1
#14 #14 0x08059209 in main
(argc=2,
argv=0xbffff004) at/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/src/stageros.cpp:445
(gdb) info locals
p = 0x8666f20
r = 0x8666f5c
i = 0x8666f5c
j = 0x8666f60
piv = 0x8666eb8
Stack = {{p = 0x8666f20, r = 0x8666f5c}, {p = 0xbfffe6b8, r =
0x404912c1},
{p = 0x866f600, r = 0x43337ff4}, {p = 0x41018899, r = 0x404912c1}, {p =
0x82e3de0, r = 0xb}, {p = 0x80cdd50, r = 0x404912c1}, {
p = 0x268, r = 0x2710}, {p = 0x48, r = 0x405c0470}, {p = 0x405c0478,
r =
0x9}, {p = 0x40, r = 0x9}, {p = 0x3d8, r = 0x2710}, {p = 0x40, r =
0x405c0470}, {p = 0x405c0478, r = 0x0}, {p = 0x3c, r = 0x8}, {
p = 0x1, r = 0x50}, {p = 0x0, r = 0x404912c1}, {p = 0x0, r = 0x0}, {p =
0x8, r = 0x39}, {p = 0x5b, r = 0x6e}, {p = 0x77, r = 0x404912c1}, {p
= 0x0,
r = 0x30}, {p = 0x0, r = 0x405bfff4}, {p = 0x0,
r = 0x2710}, {p = 0x110, r = 0x405c0470}, {p = 0x5b, r = 0x6e}, {p =
0x108, r = 0x22}, {p = 0x4, r = 0x2710}, {p = 0x88, r = 0x405c0470},
{p =
0x0, r = 0x0}, {p = 0x80, r = 0x11}, {p = 0x2, r = 0x98}, {
p = 0x0, r = 0x0}, {p = 0x0, r = 0x0}, {p = 0x11, r = 0x3a}, {p =
0x5b, r
= 0x6e}, {p = 0x77, r = 0x7c}, {p = 0x8660000, r = 0x86654c0}, {p =
0x0, r
= 0x405bfff4}, {p = 0x405c0440, r = 0x4097a520}, {
p = 0x80, r = 0x40493fec}, {p = 0x0, r = 0x0}, {p = 0x0, r =
0x409d0ff4},
{p = 0x86652c0, r = 0x8666d00}, {p = 0x866f484, r = 0x4097c20a}, {p =
0x108, r = 0x3ff00000}, {p = 0x0, r = 0x4097c993}, {
p = 0x843f9f8, r = 0x4097a520}, {p = 0x86652c0, r = 0x4097c5a0}, {p =
0x80, r = 0x3fc51eb8}, {p = 0x2e5096af, r = 0xdf238d35}}
top = < optimized out>
seed = 1409832680
(gdb) up
#1 #1 0x4097fb2e in InitPriorityQ
(tess=< optimized out>) at libtess/sweep.c:1251
1251 if (v != vHead || !pqInit( pq ) ) { /* _gl_pqSortInit /
(gdb) info locals
pq = 0x843f9f8
v = 0x866f430
vHead = 0x866f430
(gdb) up
#2 #2 __gl_computeInterior
(tess=0x8666078) at libtess/sweep.c:1321
1321 if ( !InitPriorityQ( tess ) ) return 0; / if error */
(gdb) info locals
v = < optimized out>
vNext = < optimized out>
(gdb) up
#3 #3 0x40980900 in
gluTessEndPolygon (tess=0x8666078) at libtess/tess.c:540
540 if ( !_gl_computeInterior( tess ) ) {
(gdb) info locals
mesh = < optimized out>
(gdb) up
#4 #4 0x40273d55 in
Stg::BlockGroup::BuildDisplayList (this=0x864a6d4) at/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/blockgroup.cc:243
243/tmp/buildd/ros-fuerte-stage-1.6.6/debian/ros-fuerte-stage/opt/ros/fuerte/stacks/stage/build/stage/libstage/blockgroup.cc:
No such file or directory.
(gdb) info locals
tobj = 0x8666078
geom = {pose = {_vptr.Pose = 0x8071dd8, x = 0, y = 0, z = 0, a = 0},
size
= {x = 0.33000000000000002, y = 0.33000000000000002, z =
0.10000000000000001}}
contours = {< std::_Vector_base< std::vector< double, std::allocator<
double> >, std::allocator< std::vector< double, std::allocator<
double> > >= {
_M_impl = {< std::allocator< std::vector< double, std::allocator<
double>= {< __gnu_cxx::new_allocator< std::vector< double,
std::allocator<
double> > >> = {< No data fields>}, < No data fields>},
_M_start = 0x866aee8, _M_finish = 0x866aef4, _M_end_of_storage =
0x866aef4}}, < No data fields>}
c = < optimized out>—
Reply to this email directly or view it on
GitHubhttps://github.com//issues/31.—
Reply to this email directly or view it on GitHub
#31 (comment).
from stage.
Try to add the "z" parameter to the points list:
block (
points 4
point[0] [0.16 0.16]
point[1] [-0.16 0.16]
point[2] [-0.16 -0.16]
point[3] [0.16 -0.16]
z [0 .32] # This one seems to be missing from a lot of models
color "red"
)
from stage.
That seems to fix it, Thanks!
kdb
On 12/12/2012 10:50 PM, Rich wrote:
Try to add the "z" parameter to the points list:
block (
points 4
point[0] [0.16 0.16]
point[1] [-0.16 0.16]
point[2] [-0.16 -0.16]
point[3] [0.16 -0.16]
z [0 .32] # This one seems to be missing from a lot of models
color "red"
)—
Reply to this email directly or view it on GitHub
#31 (comment).
from stage.
Fixed.
from stage.
Related Issues (20)
- 3D Point Cloud Data
- Where is the function of run one simulation step at a time?
- set initial speed to a robot HOT 1
- PRINT_DEBUG aren't enabled in debug build.PRINT_DEBUG msgs spawn a lot of warns/errs HOT 2
- Increasing trail_length value badly affects world gui and trail footprint rendering HOT 1
- New release? HOT 2
- Query range data not supported
- stage Stage/worlds/simple.world stage: error while loading shared libraries: HOT 4
- How to display last and prediction robot trajectroy
- Race condition in ModelRanger::Sensor HOT 2
- Error when trying to run wifi world
- Unable to set 'speedup' running headless (ie. --gui) HOT 1
- Player make error in Ubuntu 16.04 HOT 2
- How can I install "Player" in Ubuntu 16.04? HOT 6
- Wifi models won't work
- 'speedup' command causing crash to Stage HOT 1
- Simple world won't run HOT 1
- Fiducials not working correctly
- Programmable Color Indication for Robot in Stage
- install player/stage on ubuntu18.04 HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stage.