Blog | 3D Repository

The ADL 3DR is now open source

February 14, 2012

Today I’d like to announce a major milestone for the 3DR project: The ADL 3DR is now completely open source. This means that the community of users and other interested parties are completly free to review the technology; to modify, remix, and improve it. We hope that this step will lead to broader adoption and deeper collaboration between those interested in sharing and reusing digital content. The project is hosted by GitHub, the largest online code hosting service in the world. You can download the source code at https://github.com/adlnet/3D-Repository. Here, you can also file bug reports, read documentation, communicate with the developers, and get copies of the installer files.

Other news:

A major step in the 3DR development is the first version of the 3DR installer that can update an existing installation without loosing previously uploaded content. This important feature is necessary to allow partners to keep up to date with new development. In the future, you’ll always be able to download an executabe that will upgrade your installation to the most recent version.

The U.S. Army Research Laboratory’s Simulation and Training Technology Center (ARL STTC) has installed a private 3DR instance, with plans to create a public facing instance sometime in the future.

We have 2 major development efforts running simultaneously. First, we’ll drop support for the Google O3D plugin. This feature has been with us since the very beginning, but the technology behind it has been overcome by events in the web programming world, and is no longer a suitable choice for delivering 3D content to browsers. Removing this feature will streamline the technical architecture under the hood, as we previously relied on deprecated tools no longer supported by Google. We’ll continue improving the WebGL viewer, and replace O3D with a viewer based on Flash’s Stage3D. Importantly, this viewer will parse the same JSON representation that WebGL does- further simplifying the server side code. Expect the Stage3D viewer in the next few weeks – basic work is complete, and simply requires integration.

Second, we’re continuing work to make setting up and maintaining a copy of the 3DR software easier. The majority of the settings that previously required an administrator to edit config files manually will now be accessible through a web interface. Should configuration errors arise, the system will be smarter about aiding the admin in fixing them – even going so far as to detect database connection errors, and fall back to a recovery state that allows configuration changes even when the database is offline. Here’s a sneak peak at the configuration tools.

We hope these new features will continue to make the 3DR valuable to the training community. Please consider becoming a contributor to the project by downloading the source and improving it. As always, please let us know how we can serve you better.

January 2012 update

January 3, 2012

The 3DR has been running along without many issues for a while now, so we’ve been reluctant to introduce too many changes, and instead are focusing our efforts on finding partners to contribute content or to set up new repositories. Still, it’s the new year and we’ve rolled out some maintenance updates, a few of which will have some minor impact on our users.  Chief among these is an update to the permission management GUI, which was a bit cumbersome to use. Now, you can see a much more intuitive interface for setting access controls on your objects. Other upgrades improve the system under the hood, and introduce new integration features in the API and in the web front end.  In no particular order, here are the recent upgrades.

  • Updated permission management GUI. Click the “permission” button on models you own to open the dialog.
  • The 3D preview has been removed when a viewer does not have permission to download a model. This was decided because there is very little technical difference between viewing the model and downloading it – the previews require the 3D data to be sent down to the client browser, which would make it easy for a technically savvy user to download the model even when they were restricted from doing so.
  • The REST API now uses HTTP Basic Authentication – the same username and password used to register a user with the web front end can be sent to the API to gain access to content. The API enforces the same restrictions on access as the web front end. This mean that you can now use the API to connect to you own private group of models, which was not possible before. Also, search results obey the visibility restriction and will not list models that cannot be accessed by the API user. To gain access to only publicly available content, you can either omit the HTTP-Auth header, or use the username “AnonymousUser”.
  • The web front end now uses the API code in the background to serve up content. This makes maintaining the system much easier, as the content delivery logic is no longer duplicated in both the web front end and the API. Also, the querystring syntax for fetching content has been greatly simplified in the name of maintainability.
  • Thumbnails are now cached locally on the web front end server, as well as uploaded to the repository backend. This fixes a major performance issue when fetching search results for many objects.
  • Various stability and design improvement to the real time preview system, and the screenshot generation system.
  • Federal Learning Registry integration. Metadata and paradata generated by users on the ADL 3DR is now registered in the Federal Learning Registry to allow 3D content to be found and used across a variety of e-learning products and systems.

Please give us feedback!

November 1, 2011

I’ve made an effort in the past few weeks to mention the 3DR to a few communities of artists. We needed more traffic for beta testing and to generate some statistics, and I’m pleased to see our traffic is up several hundred percent. I want to thank the users of www.thefree3dmodels.com and www.opengameart.org for using our site and helping us with testing. The increased load has helped identify a few issues that we’re working on resolving. We’re getting 200-400 pageviews a day – Thank you!

Please don’t hesitate to use the “Contact Us” page to leave feedback. It’s very important to us to gather info on your experiences. If you have browser compatibility problems or other problems with the site, please let us know. This will help make the system better! Also, I know 20 or 30 new users have signed up in the last few weeks – please don’t hesitate to upload content. The upload is one of the most complex parts of the system, and could really use some stress testing from the public.

Of course you can leave feedback as a comment on this post as well.

Federation

October 19, 2011

One frequent refrain we here when proposing that organizations make their content available for reuse is an objection to hosting it on external servers. That’s fine – ADL is not in the web hosting business, and we don’t want to chew through our bandwidth if someone else is willing to use theirs. Perhaps they want to use the 3DR as an art asset pipeline tool for their own workflow, and need faster access than you can get over the internet. Perhaps they want to have ultimate control over when and if the content is taken offline or deleted forever.

Our solution to this issue is to create a registry of 3DR instances. If your organization hosts a 3DR install, you can list the URL with ADL. We provide a web service that searches all the registered 3DR instances. We call this service the Federation API, and refer to each install as federates. The Federation API provides all the same functions as the regular 3DR API, as well as a few management functions. You can use the management service to add or remove your 3DR API URL from the federation, and to set some permissions for the federations access to your content.

Users of the Federation API can search for content by calling the search function – the results they receive will contain a unique identifier for the content objects found. When the user requests a download from the federation, that request will be redirected to the proper URL for the content based on the namespace of the content’s ID. This allows applications that are written against a normal 3DR API to use the Federation API instead. The service will fetch metadata, thumbnails, and models from the appropriate 3DR federate, without the application being aware that the content is not physically stored on the ADL hosted Federation server. Note that the Fedearion server will only be able to access content that is marked as “Fetchable” to “AnonymousUsers” in the permissions settings.

We’ve created a webpage the uses the JSONP API interfaces to search and download models from the federation. Note that currently, the only federate that is online is the main instance at 3dr.adlnet.gov.

http://3dr.adlnet.gov/Federation/FederationTest.htm
To see what federates are online, and who they belong to, use the link  below. You can also request to list your install of the 3DR software with the federation.

http://3dr.adlnet.gov/Federation/FederationManager.htm

Now that we have user configurable permissions available on the site, we imply that there is some level of security to prevent unauthorized users from downloading models. When a user is allowed to “view” a model, but not download it, they have an option of seeing a 3D preview of the model. This does raise some security concerns. Anything that a web browser shows the user must be downloaded by the browser at some point – therefore a clever user could intercept this data as it moves between the server and the browser. This means that a savvy user of the website could save a copy of the model when they preview it, even if they do not have download access.

One proposed solution is to remove preview access for anyone who does not have download access. The makes it impossible for someone who is not allowed to download the model to steal it. Another solution is to add another level of permissions, between “view” and “download”, that you could set for a model. Therefore, if you had some content that you would prefer to keep private, but would not be a major incident if it was leaked, you could allow people to preview it and trust that they have not motivation or skills to steal it. Finally, we could do nothing, and understand that models marked as viewable but not accessible expose some risk.

What do you think? Knowing that previewing a model provides the client with an opportunity to intercept the model data, should users who do not have permission to download that model be allowed to preview it?

Creating a group of users

October 13, 2011

One of the benefits to the new permission feature is the ability to share your model with only people you select. In the last post, I detailed how to set the permissions for the default groups AllUsers and AnonymousUsers. In this post, I’ll show you how to create your own group of users, and assign models and users to that group.

The first step to making a model private to a group of users it to remove access for AllUsers and AnonymousUsers. Use the “Remove Permission” link shown. Check the previous post for a reminder on how to get to this page.

Next, you’ll need to create the group. Start by logging in, then click the “My Account” button in the top right corner of the page.

Choose “Edit Groups”

Next, choose “Create Group”. In this image, you can see the default groups. This is because I’m logged in as the site administrator. Regular users will not see these groups.

Next, fill out the dialog box that appears. In this example, I’ve chosen “AdminOnlyAdd”. That means that I, as the creator of the group, am the only person allowed to list models with this group. If I choose UsersAdd, members of this group will be allowed to share their models with this group. UsersAddRemove will give all members of the group the ability to add and remove models from this group.

The new group will appear in the list of groups. Click “Select” next to the group name in order to edit the members of this group.

You will see a list of all the users of this group, including yourself. You may use the “Remove” link to remove users, however you may not remove yourself. As the creator of this group, you are assumed to be a member.

Click the “Add User To Group” button to add a user. The following dialog will appear.

I’ve entered the name of one of our talented engineers. When I click Add, he will appear below my name in the list of group members. Repeat this step for everyone you would like to add to the group. Note that currently you will have to know the email address for the user you wish to add. We are working around this issue, but we can’t simply publish all user addresses. In the future, you may be able to search for users by name, and enter a handle or username rather than an email address.

That’s it! You can now use this group “Colleagues” when setting permissions on objects. See the previous post for information on how to list a model with a group. Note that because the group was creates as “AdminOnlyAdd”, I am the only person who may list models with this group. Likewise, the existence of this group is not public – you can create a totally private network of users and content within the larger 3DR, and other users will not even be aware that your content or group exists.

”"

Free Furniture

October 11, 2011

I am the author and owner of the 3D furniture models in the repository, and I’ve decided to open them up to anonymous download. This was not possible before, but now that the permissions feature are working, I’d like to give these to whatever community members or random internet people might find them useful. Please, random internet people, let me know if you end up using these somewhere. Use this link to find all the anonymous free furniture. Hopefully this will drive some traffic.

http://3dr.adlnet.gov/Public/Results.aspx?ArtistName=Rob&Method=or

Our new access control features give you fine grained control over who can find and access your content. Previously, all the content in the 3DR was downloadable by all registered users, and viewable by anyone, including anonymous website users. Now, you may specify that anyone (including anonymous users) may download your content. Or, you may make your content invisible to anonymous users, or even make content private to only a select group of users.

You configure this feature by adding permissions for users or groups of users to a model. There are 2 special groups, “AllUsers” and “AnonymousUsers”, and 4 permission levels (listed in increasing order): “Searchable”,”Fetchable”,”Editable” and “Admin”. The default behavior for content already in the repository has not changed. This means that we have set all the content to Searchable for AnonymousUsers, and Fetchable for AllUsers. Thus, anyone at all may see the content in the search results, but must log in to download. Anyone who can log in can download. “Editable” means that users may change the content of the file or update the metadata, and “Admin” may delete it or edit it’s permissions. “Admin” level rights are currently reserved for the owner of the model, and the website staff.

Users will be allowed the greatest level of access available under any groups which they are part of. For the special case groups,everyone is a part of AnonymousUsers and anyone with a login is a member of AllUsers. Thus, it would not make sense to set your models to Fetchable for Anonymous Users but only Searchable for AllUsers. Anyone in AllUsers would also be in AnonymousUsers, and thus be able to download your models.

You may create your own groups of people. Image you were to create a group called Colleagues and add your co-workers to it. You upload a model, and remove all permissions for AllUsers and AnonymousUsers. Then, you assign Colleagues Fetch permissions for the model. This model will be invisible and inaccessable to everyone except your co-workers. You may even set this group so that your co-workers can also list their models in it – allowing you to create a private community for sharing content. Only website administrators would even know this content existed.

To add users and groups, you must know the names of the groups or users you wish to assign your model to. The defaults, as mentioned above, are AllUsers and AnonymousUsers. We’re working now on a prettier GUI that will give you hints on what groups you may assign models to, and let you search for users. Tomorrow I will post a tutorial on creating a group and adding users to it.

Here’s a step by step guide to configuring permissions.

To Edit the permission for a model, begin by uploading the model normally. When the upload is complete, choose the “Edit” link on the Model page.

Then, open the rollout with the text “Optional Information”

You should see near the bottom of the page settings similar to the ones below.

When you click on “Add Group” you will see a dialog like the one below. Clicking “Remove Permission” will strip all permission from that group or user, making the model invisible and inaccessible to them.

 

You must know the name of the group you wish to assign permissions to. The default groups are AllUsers and AnonymousUsers. When you select Fetchable in the example and click “Add” the page will refresh to show the updated permissions. Now, anyone on the web can download this model. There is no need to use the “Next” or “Cancel” buttons when editing permission. The new settings are applied immediately. Tomorrow I will post a quick tutorial on creating a custom group of users.

It’s been a while since you’ve heard from us – we’ve had our nose to the grindstone for the past few months, and are proud to announce big updates to the 3DR software and project. We’ve finished a large development milestone, and have completed many of the features the community has been waiting for. In the next few days, I’ll be posting articles on the new features, how they will affect you, and how to use them. Check back each day this week for articles on access controls, federation, support for more content, API updates, and open source distribution information.

REST API

September 1, 2011

Our recent release to the production 3DR server includes an exciting new feature: A REST API. This API will enable other applications to leverage the services available through the 3DR website. You will be able to retrieve models in all the available formats, search, download textures and view metadata. This will allow developers to write model search and download functionality into their product – much like the SecondLife integration video posted earlier on this blog. For example, an application could download a model with the following URL.

http://3dr.adlnet.gov/api/rest/adl:667/Format/fbx?ID=00-00-00

In order to keep some statistics on use, you’ll need to get an API key for your account. This will allow us to associate users of the API with user profiles in our members database. Application developers may use their key on behalf of all uses of their product, or they may require a unique key for each user of their software. You can create a new key from the Profile page on the main 3DR web interface.

Documentation is available here:

http://3dr.adlnet.gov/docs/3dr_api_doc.html

 

Page 1 of 212»

Disclaimer of Endorsement. The ADL Initiative does not endorse the organizations providing 3D models and related content. All ratings and comments represent independent user evaluations and do not represent the views of the ADL Initiative.


Sponsored by the Office of the Under Secretary of Defense for Personnel and Readiness (OUSD P&R).
This is an official website of the U.S. Government. © 2013 Advanced Distributed Learning (ADL).
USA.gov logo
Calotropis Theme designed by itx