Declutter roadmap status update

570 views
Skip to first unread message

Ognjen Bubalo

unread,
Oct 13, 2013, 9:16:47 PM10/13/13
to cesiu...@googlegroups.com
Hi Everyone,

I just want to post a little status update about the Declutter project.


Currently what we first wanted to have with Dan is the calculation of an oriented bounding box. We decided to have a general 3d OOBB calculation. After checking several papers I decided to implement this solution: http://gamma.cs.unc.edu/users/gottschalk/main.pdf

I implemented it and created some testcases. I opened a pull request on Dan's fork: https://github.com/bagnell/cesium/pull/1

More testcases are coming.
If the implementation passes, I will create a pull request to the AGI fork.

While planning this project we had some discussions with Patrick and Dan about handling the label overlapping. The next step will be creating a solution for this.

Have a nice day!

Ogi



Patrick Cozzi

unread,
Oct 16, 2013, 8:36:09 PM10/16/13
to cesiu...@googlegroups.com
Thanks for sharing.  We'll look forward to your continued progress.

Patrick

Ognjen Bubalo

unread,
Oct 25, 2013, 3:25:09 PM10/25/13
to cesiu...@googlegroups.com
Hi Everyone,

Dan gave me great comments in the pull request of the ObjectOrientedBoundingBox. After fixing the issues, I continued working on a function which computes the OOBB from a BoundingRectangle and a rotation (2D solution for labelling). Also I started implementing the separating axis theorem for rectangles and boxes, so we can determine intersection of two rectangles or boxes.

Hopefully I can add these features to the pull request on the first part of next week.

I will post regularly status updates. If you have any questions about this project, do not hesitate.

Best Regards,
Ogi

Ognjen Bubalo

unread,
Oct 28, 2013, 7:35:57 PM10/28/13
to cesiu...@googlegroups.com
Hi Everyone,

I added a method for computing OOBB from a BoundingRectangle and a rotation with testcases. I am working on the SAT for checking intersections. 
Some reference: 

I will post as soon it is ready.

Ogi

Ognjen Bubalo

unread,
Nov 1, 2013, 11:01:29 PM11/1/13
to cesiu...@googlegroups.com
Hi Everyone,

I implemented the collision check for two ObjectOrientedBoundingBoxes. Also I added testcases. 
The method's name is intersect, but I am not sure that this is a good choice. As I know it is used for other purpose. 

During the weekend I will add more testcases.

Have a nice weekend!

Ogi 

 

Ognjen Bubalo

unread,
Nov 4, 2013, 8:25:39 PM11/4/13
to cesiu...@googlegroups.com
Hi!

I added more testcases, fixed some conflicts, and did some refactor. If you have time to tell me your opinion about this pull request, please do it. Thanks!

You can find it here currently: https://github.com/bagnell/cesium/pull/1

I will post a reply with the next steps soon.

Ogi

Ognjen Bubalo

unread,
Nov 9, 2013, 12:36:52 PM11/9/13
to cesiu...@googlegroups.com
Hi Everyone,

After Dan reviewed the code I updated the pull request. I created a function for getting the vertices from the OOBB's properties, but Dan told me that there is already a solution for that, so I will rewrite some testcases.

During the weekend I want to compute OOBB-s for labels.

Regards,
Ogi 

Ognjen Bubalo

unread,
Nov 11, 2013, 7:57:55 PM11/11/13
to cesiu...@googlegroups.com
Hi,

I've added computing the OOBB-s for labels. This will be soon a new pull request. In the next 1-2 days I'll add the intersect checking for the Labels, + tests for that.

Have a nice day,
Ogi

Patrick Cozzi

unread,
Nov 12, 2013, 7:12:12 AM11/12/13
to cesiu...@googlegroups.com
Thanks for the update Ogi.  Your recent progress is looking good.

Patrick


--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/L8EvEBNZb10/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



--

Ognjen Bubalo

unread,
Nov 17, 2013, 4:38:09 PM11/17/13
to cesiu...@googlegroups.com
Hi,

Dan after some fixes merged the ObjectOrientedBoundingBox model. I've added oobb-s to the Labels, and added computing when reposition occurs. Currently we are discussing about the declutter algorithm with Patrick and Dan. Soon I will post the fix plan and the schedule.

Thanks,
Ogi

Ognjen Bubalo

unread,
Nov 24, 2013, 8:04:02 PM11/24/13
to cesiu...@googlegroups.com
Hi Everyone,

Just a little update. 

Dan merged the ObjectOrientedBoundingBox to the AGI/master branch. Also we had a discussion about the declutter algorithm. We decided to implement first the solution based on circle/spiral. 

If we the actual label we want to place would collide we try to find a place on a circle around the original placement position. If we don't succeed we enlarge this circle. If we still cannot find a good placement, we start playing with the translucency. 
One important thing is that Label can have a priority, so the labels with a higher priority will be placed first.

During the weekend I implemented this algorithm. I need 1-2 days to complete it.

Ogi

Patrick Cozzi

unread,
Nov 25, 2013, 9:05:57 PM11/25/13
to cesiu...@googlegroups.com
Looking forward to your progress on the algorithm.  Congrats on getting your code merged.

Patrick

Ognjen Bubalo

unread,
Dec 9, 2013, 8:46:18 AM12/9/13
to cesiu...@googlegroups.com
Hi,

Just a little update. 
Currently I am working on setting the new position of the Label to the VBO. When I finish this, I think we can start to test the declutter based on the circle/spiral method.

Regards,
Ogi

Ognjen Bubalo

unread,
Dec 20, 2013, 10:56:44 AM12/20/13
to cesiu...@googlegroups.com
Hi Everyone,

With Dan's help I've pushed an initial declutter. During the next days I will clean the code and hopefully reach the first milestone.

Regards,
Ogi

Ognjen Bubalo

unread,
Jan 3, 2014, 4:57:39 PM1/3/14
to cesiu...@googlegroups.com
Hi Everyone,

Happy New Year! :)

Dan checked the initial declutter and gave me his czml test set. I've optimized the declutter after his comments. I will push the update during the weekend.

Regards,
Ogi

Rencia Cloete

unread,
May 23, 2014, 5:26:20 AM5/23/14
to cesiu...@googlegroups.com, ren...@suritec.co.za
Hi Ogi / Dan, by any chance you got a working version of declutter yet? 
Thanks. Rencia 

Ognjen Bubalo

unread,
May 25, 2014, 10:26:52 PM5/25/14
to cesiu...@googlegroups.com
Hi Rencia,

No. Unfortunately I couldn't find time in the last couple of months to finish declutter, however I would like to continue in some way. The calculation of Object oriented bounding boxes was implemented and a half ready spiral/circle solution. The next step would be testing it. Future plan was to use force vectors.

May I ask what is your plan with the declutter?

Ogi


On Fri, May 23, 2014 at 10:26 AM, Rencia Cloete <rencia...@gmail.com> wrote:
Hi Ogi / Dan, by any chance you got a working version of declutter yet? 
Thanks. Rencia 

--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/L8EvEBNZb10/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Rencia Cloete

unread,
May 26, 2014, 5:58:12 AM5/26/14
to cesiu...@googlegroups.com
Hi Ogi, basically when there is clutter then I was hoping for a similair result to the STk software where the labels are then spread out with a little line connecting each to its object or point of reference. AS one zooms in & the clutter is reduced the label then comes nearer. 
Many thanks for your reply....
please let me know when you make further progress.
Regards
Rencia

joedo...@gmail.com

unread,
Jul 9, 2014, 9:32:59 AM7/9/14
to cesiu...@googlegroups.com
Is there any word on when this is going to continue to get worked? I see that it's part of the roadmap, but not any releases. For my project, we have some dynamic data that often results in labels being stacked right on top of each other! I have tried manually adding the changes to b27 (what we're using currently), but I think I missed some of them since I keep getting rendering issues in the updateFrustrum function.

In the meantime are there any good workarounds? I currently have a O(n^2) function that checks all labels for overlap and repositions them that runs every 1/10th of a second. I would like to try to find a more elegant solution that works more efficiently.

Thanks.

Patrick Cozzi

unread,
Jul 9, 2014, 6:33:06 PM7/9/14
to cesiu...@googlegroups.com
There hasn't been any work on this recently.  You may be able to get ideas for an app-specific low-tech solution by reading through the roadmap: #1097.

Patrick

Joseph Donofry

unread,
Jul 18, 2014, 10:53:58 AM7/18/14
to cesiu...@googlegroups.com
I came up with a partial solution that measures the distance from the camera to the label and uses that to generate a scale for the label and to determine how far apart labels should be.  Labels that overlap are hidden.  Zooming in results in more labels being displayed as long as they don't intersect according to the new camera distance.  Then, after a certain threshold, all labels are shown.  It seems to work for now, but I would like to revisit this in the future, possibly with some kind of grouping based on location or using some kind of force repulsion between labels.  I wasn't sure of a good way to do either of these things.

If there's any interest, I can share what I have done for the time being.

Patrick Cozzi

unread,
Jul 18, 2014, 11:24:51 AM7/18/14
to cesiu...@googlegroups.com
Glad you found something that works for you.  Can you post a link to a demo?  This could be a good fit for a Cesium plugin.

Patrick


--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/L8EvEBNZb10/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Joseph Donofry

unread,
Jul 18, 2014, 12:38:12 PM7/18/14
to cesiu...@googlegroups.com
I'll have to remember to write something up when I get home.  My work computer is on an internal network.

Rencia Cloete

unread,
Jul 21, 2014, 5:14:49 AM7/21/14
to cesiu...@googlegroups.com
HI Joseph, I am very interested in your code - a plug-in sounds good but meanwhile be great to incorporate it meanwhile... thanks!
Rencia

Ognjen Bubalo

unread,
Jul 22, 2014, 1:32:55 PM7/22/14
to cesiu...@googlegroups.com
Hi Joseph,

When I was working on it there were two approaches we considered in case of intersection. 
One was the spiral/circle idea, where you put one label and try to put the next. If they are overlapping then you try to find a place around the original placement point on a circle, if there is no space then extend the circle for a while.

Ogi

vdiwakar...@gmail.com

unread,
Apr 6, 2015, 8:56:57 AM4/6/15
to cesiu...@googlegroups.com
Hi Joseph,

Could you please let me know whether your code included as a plug-in to Cesium. I have a similar requirement to implement.

Regards,
Diwakar

supar...@gmail.com

unread,
Nov 11, 2015, 4:56:56 PM11/11/15
to cesium-dev, vdiwakar...@gmail.com
Hi,

Is there any update on the declutter roadmap or could you please let me know how can i find out whether the labels are overlapping at a particular zoom level?

Patrick Cozzi

unread,
Nov 12, 2015, 9:00:51 AM11/12/15
to cesiu...@googlegroups.com, Venkata Diwakar Malladi
Hi,

There's no update on the roadmap, but if you search the forum, I believe some developers have created partial solution specific to their app that could provide some ideas.

Patrick

On Wed, Nov 11, 2015 at 4:56 PM, <supar...@gmail.com> wrote:
Hi,

Is there any update on the declutter roadmap or could you please let me know how can i  find out whether the labels are overlapping at a particular zoom level?
--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/L8EvEBNZb10/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Daniel Wild

unread,
Dec 13, 2015, 9:12:22 PM12/13/15
to cesium-dev
I've posted this elsewhere - but just wanted to point out that server-side clustering and heat-mapping of point data can be handled by GeoServer quite easily (if you have control of the data) using rendering transformations and consumed in Cesium as as simple WMS layer: http://docs.geoserver.org/stable/en/user/styling/sld-extensions/rendering-transform.html.
Reply all
Reply to author
Forward
0 new messages