{"action":"created","comment":{"url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/comments/55900165","id":55900165,"diff_hunk":"@@ -508,6 +508,386 @@ void testCopying() {\n     }\n }\n \n+void testAccessByTime() {\n+    Model model(\"arm26.osim\");\n+    auto& state = model.initSystem();\n+\n+    // Make a trajectory with different times.\n+    StatesTrajectory states;\n+    state.setTime(0.5);\n+    states.append(state); // 0\n+    state.setTime(1.3);\n+    states.append(state); // 1\n+    state.setTime(3.5);\n+    states.append(state); // 2\n+    state.setTime(4.1);\n+    states.append(state); // 3\n+    \n+    // Nearest before.\n+    SimTK_TEST(states.findIndexNearestBefore(0.5) == 0);\n+    SimTK_TEST(states.findIndexNearestBefore(0.5000001) == 0);\n+    SimTK_TEST(states.findIndexNearestBefore(1.299999999) == 0);\n+\n+    SimTK_TEST(states.findIndexNearestBefore(1.3) == 1);\n+    SimTK_TEST(states.findIndexNearestBefore(1.300001) == 1);\n+    SimTK_TEST(states.findIndexNearestBefore(3.49999) == 1);\n+\n+    SimTK_TEST(states.findIndexNearestBefore(4.1) == 3);\n+    SimTK_TEST(states.findIndexNearestBefore(4.2) == 3);\n+    SimTK_TEST(states.findIndexNearestBefore(153.7) == 3);\n+\n+    // Nearest after.\n+    SimTK_TEST(states.findIndexNearestAfter(-100.0) == 0);\n+    SimTK_TEST(states.findIndexNearestAfter(0) == 0);\n+    SimTK_TEST(states.findIndexNearestAfter(0.1) == 0);\n+    SimTK_TEST(states.findIndexNearestAfter(0.4999999999) == 0);\n+    SimTK_TEST(states.findIndexNearestAfter(0.5) == 0);\n+\n+    SimTK_TEST(states.findIndexNearestAfter(1.3000000000001) == 2);\n+    SimTK_TEST(states.findIndexNearestAfter(1.31) == 2);\n+    SimTK_TEST(states.findIndexNearestAfter(1.4) == 2);\n+    SimTK_TEST(states.findIndexNearestAfter(3.4) == 2);\n+    SimTK_TEST(states.findIndexNearestAfter(3.4999999999999) == 2);\n+    SimTK_TEST(states.findIndexNearestAfter(3.5) == 2);\n+    \n+    SimTK_TEST(states.findIndexNearestAfter(4.0001) == 3);\n+    SimTK_TEST(states.findIndexNearestAfter(4.1) == 3);\n+\n+    // Exception if there is not a state before/after the specified time.\n+    SimTK_TEST_MUST_THROW_EXC(states.findIndexNearestBefore(0.25),\n+            StatesTrajectory::TimeOutOfRange);\n+    SimTK_TEST_MUST_THROW_EXC(states.findIndexNearestBefore(0.0),\n+            StatesTrajectory::TimeOutOfRange);\n+    SimTK_TEST_MUST_THROW_EXC(states.findIndexNearestBefore(-1.0),\n+            StatesTrajectory::TimeOutOfRange);\n+    SimTK_TEST_MUST_THROW_EXC(states.findIndexNearestBefore(.499999),\n+            StatesTrajectory::TimeOutOfRange);\n+\n+    SimTK_TEST_MUST_THROW_EXC(states.findIndexNearestAfter(4.10000001),\n+            StatesTrajectory::TimeOutOfRange);\n+    SimTK_TEST_MUST_THROW_EXC(states.findIndexNearestAfter(1050.9),\n+            StatesTrajectory::TimeOutOfRange);\n+\n+    // Simulate the scenario that the tolerance is intended to handle.\n+    {\n+        // Pretend that the original states had times of 4.0 and 5.0, but\n+        // that they were serialized (to a storage file) with limited precision\n+        // and were written as 3.999999 and 5.000001. Now, the user\n+        // thinks these times are still 4.0, and 5.0, and will end up\n+        // getting the wrong states.\n+        StatesTrajectory states2;\n+        state.setTime(1.9);\n+        states2.append(state); // 0\n+        state.setTime(3.999999);\n+        states2.append(state); // 1\n+        state.setTime(4.5);\n+        states2.append(state); // 2\n+        state.setTime(5.000001);\n+        states2.append(state); // 3\n+        state.setTime(9.3);\n+        states2.append(state); // 4\n+        // The user would *expect* to get index 1, but does not, since \n+        // the tolerance is 0:\n+        SimTK_TEST(states2.findIndexNearestAfter(4.0) != 1);\n+        // The user would *expect* to get index 3, but does not, since \n+        // the tolerance is 0:\n+        SimTK_TEST(states2.findIndexNearestBefore(5.0) != 3);\n+        // (If the user had specified a tolerance of 1e-6 or greater, then they\n+        // would have gotten the indices they expected.)\n+    }\n+\n+    // Back to the original trajectory.\n+    // Using a custom tolerance.\n+    SimTK_TEST(states.findIndexNearestBefore(0.499, 0.001) == 0);\n+    SimTK_TEST(states.findIndexNearestBefore(0.495, 0.005) == 0);\n+    SimTK_TEST(states.findIndexNearestBefore(1.2991, 0.001) == 1);\n+    SimTK_TEST(states.findIndexNearestBefore(1.298999, 0.001) == 0);\n+    SimTK_TEST(states.findIndexNearestBefore(4.099, 0.001) == 3);\n+    SimTK_TEST(states.findIndexNearestBefore(4.098, 0.001) == 2);\n+\n+    SimTK_TEST(states.findIndexNearestAfter(0.501, 0.001) == 0);\n+    SimTK_TEST(states.findIndexNearestAfter(0.503, 0.003) == 0);\n+    // Past the tolerance, we get the next state.\n+    SimTK_TEST(states.findIndexNearestAfter(0.50301, 0.003) == 1);\n+    SimTK_TEST(states.findIndexNearestAfter(1.301, 0.001) == 1);\n+    SimTK_TEST(states.findIndexNearestAfter(1.301001, 0.001) == 2);\n+    SimTK_TEST(states.findIndexNearestAfter(4.1005, 0.001) == 3);\n+    SimTK_TEST(states.findIndexNearestAfter(4.101, 0.001) == 3);\n+\n+    // Test exceptions with custom tolerance.\n+    SimTK_TEST_MUST_THROW_EXC(states.findIndexNearestBefore(0.498, 0.001),\n+            StatesTrajectory::TimeOutOfRange);\n+    SimTK_TEST_MUST_THROW_EXC(states.findIndexNearestBefore(0.498999, 0.001),\n+            StatesTrajectory::TimeOutOfRange);\n+    SimTK_TEST_MUST_THROW_EXC(states.findIndexNearestAfter(4.102, 0.001),\n+            StatesTrajectory::TimeOutOfRange);\n+    SimTK_TEST_MUST_THROW_EXC(states.findIndexNearestAfter(4.10100001, 0.001),\n+            StatesTrajectory::TimeOutOfRange);\n+\n+    // Make sure that we get the right state when there are multiple with\n+    // the same time.\n+    state.setTime(4.1); // Same time as before.\n+    states.append(state); // 4\n+    states.append(state); // 5\n+    state.setTime(5.8);\n+    states.append(state); // 6\n+    states.append(state); // 7\n+    SimTK_TEST(states.findIndexNearestAfter(4.0) == 3);\n+    SimTK_TEST(states.findIndexNearestAfter(4.1) == 3);\n+    SimTK_TEST(states.findIndexNearestBefore(5.0) == 5);\n+    SimTK_TEST(states.findIndexNearestBefore(4.1) == 5);\n+\n+    SimTK_TEST(states.findIndexNearestAfter(4.1004999, 0.0005) == 3);\n+    SimTK_TEST(states.findIndexNearestBefore(4.0995, 0.0005) == 5);\n+\n+    SimTK_TEST(states.findIndexNearestAfter(5.8) == 6);\n+    SimTK_TEST(states.findIndexNearestBefore(5.8) == 7);\n+    SimTK_TEST_MUST_THROW_EXC(states.findIndexNearestAfter(5.800001),\n+            StatesTrajectory::TimeOutOfRange);\n+\n+    // Make sure we get the right state when there are multiple within\n+    // the tolerance.\n+    {\n+        // Assume the user views the times with only two decimal places (say\n+        // in a console or storage file); they'll see:\n+        //      0.50, 1.30, 3.50, 3.50, 3.50, 4.10.\n+        // Therefore, the appropriate tolerance\n+        // is 0.01. If they ask for the nearest state before 3.50, they should\n+        // get the state that is actually at 3.502, since, from the\n+        // console/file, this appears to be the first state \"before\" 3.50.","path":"OpenSim/Simulation/Test/testStatesTrajectory.cpp","position":150,"original_position":150,"commit_id":"123cce8cf37706f1c5da99c5f5efd1bbb703cb20","original_commit_id":"123cce8cf37706f1c5da99c5f5efd1bbb703cb20","user":{"login":"chrisdembia","id":846001,"avatar_url":"https://avatars.githubusercontent.com/u/846001?v=3","gravatar_id":"","url":"https://api.github.com/users/chrisdembia","html_url":"https://github.com/chrisdembia","followers_url":"https://api.github.com/users/chrisdembia/followers","following_url":"https://api.github.com/users/chrisdembia/following{/other_user}","gists_url":"https://api.github.com/users/chrisdembia/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisdembia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisdembia/subscriptions","organizations_url":"https://api.github.com/users/chrisdembia/orgs","repos_url":"https://api.github.com/users/chrisdembia/repos","events_url":"https://api.github.com/users/chrisdembia/events{/privacy}","received_events_url":"https://api.github.com/users/chrisdembia/received_events","type":"User","site_admin":false},"body":"Based on our discussion yesterday, I'll change the behavior so you get 3.5 instead.","created_at":"2016-03-11T22:42:58Z","updated_at":"2016-03-11T22:42:58Z","html_url":"https://github.com/opensim-org/opensim-core/pull/774#discussion_r55900165","pull_request_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/774","_links":{"self":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/comments/55900165"},"html":{"href":"https://github.com/opensim-org/opensim-core/pull/774#discussion_r55900165"},"pull_request":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/774"}}},"pull_request":{"url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/774","id":59773147,"html_url":"https://github.com/opensim-org/opensim-core/pull/774","diff_url":"https://github.com/opensim-org/opensim-core/pull/774.diff","patch_url":"https://github.com/opensim-org/opensim-core/pull/774.patch","issue_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/774","number":774,"state":"open","locked":false,"title":"StatesTrajectory methods to access states by time.","user":{"login":"chrisdembia","id":846001,"avatar_url":"https://avatars.githubusercontent.com/u/846001?v=3","gravatar_id":"","url":"https://api.github.com/users/chrisdembia","html_url":"https://github.com/chrisdembia","followers_url":"https://api.github.com/users/chrisdembia/followers","following_url":"https://api.github.com/users/chrisdembia/following{/other_user}","gists_url":"https://api.github.com/users/chrisdembia/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisdembia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisdembia/subscriptions","organizations_url":"https://api.github.com/users/chrisdembia/orgs","repos_url":"https://api.github.com/users/chrisdembia/repos","events_url":"https://api.github.com/users/chrisdembia/events{/privacy}","received_events_url":"https://api.github.com/users/chrisdembia/received_events","type":"User","site_admin":false},"body":"These changes were originally part of #730, but I thought it'd be easier to review these changes in a separate PR. These changes can be cleanly separated from the rest of #730. Ready for review.\r\n\r\nDoxygen documentation can be viewed at https://myosin.sourceforge.net/774.","created_at":"2016-02-18T09:46:13Z","updated_at":"2016-03-11T22:42:58Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5cc8219631ec61ee25941aa97bc03e3c43cdfb92","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/774/commits","review_comments_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/774/comments","review_comment_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/774/comments","statuses_url":"https://api.github.com/repos/opensim-org/opensim-core/statuses/123cce8cf37706f1c5da99c5f5efd1bbb703cb20","head":{"label":"opensim-org:states-traj-access-by-time","ref":"states-traj-access-by-time","sha":"123cce8cf37706f1c5da99c5f5efd1bbb703cb20","user":{"login":"opensim-org","id":4370782,"avatar_url":"https://avatars.githubusercontent.com/u/4370782?v=3","gravatar_id":"","url":"https://api.github.com/users/opensim-org","html_url":"https://github.com/opensim-org","followers_url":"https://api.github.com/users/opensim-org/followers","following_url":"https://api.github.com/users/opensim-org/following{/other_user}","gists_url":"https://api.github.com/users/opensim-org/gists{/gist_id}","starred_url":"https://api.github.com/users/opensim-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/opensim-org/subscriptions","organizations_url":"https://api.github.com/users/opensim-org/orgs","repos_url":"https://api.github.com/users/opensim-org/repos","events_url":"https://api.github.com/users/opensim-org/events{/privacy}","received_events_url":"https://api.github.com/users/opensim-org/received_events","type":"Organization","site_admin":false},"repo":{"id":20775600,"name":"opensim-core","full_name":"opensim-org/opensim-core","owner":{"login":"opensim-org","id":4370782,"avatar_url":"https://avatars.githubusercontent.com/u/4370782?v=3","gravatar_id":"","url":"https://api.github.com/users/opensim-org","html_url":"https://github.com/opensim-org","followers_url":"https://api.github.com/users/opensim-org/followers","following_url":"https://api.github.com/users/opensim-org/following{/other_user}","gists_url":"https://api.github.com/users/opensim-org/gists{/gist_id}","starred_url":"https://api.github.com/users/opensim-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/opensim-org/subscriptions","organizations_url":"https://api.github.com/users/opensim-org/orgs","repos_url":"https://api.github.com/users/opensim-org/repos","events_url":"https://api.github.com/users/opensim-org/events{/privacy}","received_events_url":"https://api.github.com/users/opensim-org/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/opensim-org/opensim-core","description":"SimTK OpenSim 4.0 C++ libraries and command-line applications, and Java/Python wrapping.","fork":false,"url":"https://api.github.com/repos/opensim-org/opensim-core","forks_url":"https://api.github.com/repos/opensim-org/opensim-core/forks","keys_url":"https://api.github.com/repos/opensim-org/opensim-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/opensim-org/opensim-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/opensim-org/opensim-core/teams","hooks_url":"https://api.github.com/repos/opensim-org/opensim-core/hooks","issue_events_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/events{/number}","events_url":"https://api.github.com/repos/opensim-org/opensim-core/events","assignees_url":"https://api.github.com/repos/opensim-org/opensim-core/assignees{/user}","branches_url":"https://api.github.com/repos/opensim-org/opensim-core/branches{/branch}","tags_url":"https://api.github.com/repos/opensim-org/opensim-core/tags","blobs_url":"https://api.github.com/repos/opensim-org/opensim-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/opensim-org/opensim-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/opensim-org/opensim-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/opensim-org/opensim-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/opensim-org/opensim-core/statuses/{sha}","languages_url":"https://api.github.com/repos/opensim-org/opensim-core/languages","stargazers_url":"https://api.github.com/repos/opensim-org/opensim-core/stargazers","contributors_url":"https://api.github.com/repos/opensim-org/opensim-core/contributors","subscribers_url":"https://api.github.com/repos/opensim-org/opensim-core/subscribers","subscription_url":"https://api.github.com/repos/opensim-org/opensim-core/subscription","commits_url":"https://api.github.com/repos/opensim-org/opensim-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/opensim-org/opensim-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/opensim-org/opensim-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/opensim-org/opensim-core/contents/{+path}","compare_url":"https://api.github.com/repos/opensim-org/opensim-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/opensim-org/opensim-core/merges","archive_url":"https://api.github.com/repos/opensim-org/opensim-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/opensim-org/opensim-core/downloads","issues_url":"https://api.github.com/repos/opensim-org/opensim-core/issues{/number}","pulls_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls{/number}","milestones_url":"https://api.github.com/repos/opensim-org/opensim-core/milestones{/number}","notifications_url":"https://api.github.com/repos/opensim-org/opensim-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/opensim-org/opensim-core/labels{/name}","releases_url":"https://api.github.com/repos/opensim-org/opensim-core/releases{/id}","deployments_url":"https://api.github.com/repos/opensim-org/opensim-core/deployments","created_at":"2014-06-12T16:57:56Z","updated_at":"2016-02-08T15:25:29Z","pushed_at":"2016-03-11T19:59:51Z","git_url":"git://github.com/opensim-org/opensim-core.git","ssh_url":"git@github.com:opensim-org/opensim-core.git","clone_url":"https://github.com/opensim-org/opensim-core.git","svn_url":"https://github.com/opensim-org/opensim-core","homepage":"https://opensim.stanford.edu","size":128460,"stargazers_count":27,"watchers_count":27,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":21,"mirror_url":null,"open_issues_count":246,"forks":21,"open_issues":246,"watchers":27,"default_branch":"master"}},"base":{"label":"opensim-org:states-trajectory","ref":"states-trajectory","sha":"81ba07ff8120c4eafec64dac3a1a86ca8236b1dc","user":{"login":"opensim-org","id":4370782,"avatar_url":"https://avatars.githubusercontent.com/u/4370782?v=3","gravatar_id":"","url":"https://api.github.com/users/opensim-org","html_url":"https://github.com/opensim-org","followers_url":"https://api.github.com/users/opensim-org/followers","following_url":"https://api.github.com/users/opensim-org/following{/other_user}","gists_url":"https://api.github.com/users/opensim-org/gists{/gist_id}","starred_url":"https://api.github.com/users/opensim-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/opensim-org/subscriptions","organizations_url":"https://api.github.com/users/opensim-org/orgs","repos_url":"https://api.github.com/users/opensim-org/repos","events_url":"https://api.github.com/users/opensim-org/events{/privacy}","received_events_url":"https://api.github.com/users/opensim-org/received_events","type":"Organization","site_admin":false},"repo":{"id":20775600,"name":"opensim-core","full_name":"opensim-org/opensim-core","owner":{"login":"opensim-org","id":4370782,"avatar_url":"https://avatars.githubusercontent.com/u/4370782?v=3","gravatar_id":"","url":"https://api.github.com/users/opensim-org","html_url":"https://github.com/opensim-org","followers_url":"https://api.github.com/users/opensim-org/followers","following_url":"https://api.github.com/users/opensim-org/following{/other_user}","gists_url":"https://api.github.com/users/opensim-org/gists{/gist_id}","starred_url":"https://api.github.com/users/opensim-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/opensim-org/subscriptions","organizations_url":"https://api.github.com/users/opensim-org/orgs","repos_url":"https://api.github.com/users/opensim-org/repos","events_url":"https://api.github.com/users/opensim-org/events{/privacy}","received_events_url":"https://api.github.com/users/opensim-org/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/opensim-org/opensim-core","description":"SimTK OpenSim 4.0 C++ libraries and command-line applications, and Java/Python wrapping.","fork":false,"url":"https://api.github.com/repos/opensim-org/opensim-core","forks_url":"https://api.github.com/repos/opensim-org/opensim-core/forks","keys_url":"https://api.github.com/repos/opensim-org/opensim-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/opensim-org/opensim-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/opensim-org/opensim-core/teams","hooks_url":"https://api.github.com/repos/opensim-org/opensim-core/hooks","issue_events_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/events{/number}","events_url":"https://api.github.com/repos/opensim-org/opensim-core/events","assignees_url":"https://api.github.com/repos/opensim-org/opensim-core/assignees{/user}","branches_url":"https://api.github.com/repos/opensim-org/opensim-core/branches{/branch}","tags_url":"https://api.github.com/repos/opensim-org/opensim-core/tags","blobs_url":"https://api.github.com/repos/opensim-org/opensim-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/opensim-org/opensim-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/opensim-org/opensim-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/opensim-org/opensim-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/opensim-org/opensim-core/statuses/{sha}","languages_url":"https://api.github.com/repos/opensim-org/opensim-core/languages","stargazers_url":"https://api.github.com/repos/opensim-org/opensim-core/stargazers","contributors_url":"https://api.github.com/repos/opensim-org/opensim-core/contributors","subscribers_url":"https://api.github.com/repos/opensim-org/opensim-core/subscribers","subscription_url":"https://api.github.com/repos/opensim-org/opensim-core/subscription","commits_url":"https://api.github.com/repos/opensim-org/opensim-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/opensim-org/opensim-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/opensim-org/opensim-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/opensim-org/opensim-core/contents/{+path}","compare_url":"https://api.github.com/repos/opensim-org/opensim-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/opensim-org/opensim-core/merges","archive_url":"https://api.github.com/repos/opensim-org/opensim-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/opensim-org/opensim-core/downloads","issues_url":"https://api.github.com/repos/opensim-org/opensim-core/issues{/number}","pulls_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls{/number}","milestones_url":"https://api.github.com/repos/opensim-org/opensim-core/milestones{/number}","notifications_url":"https://api.github.com/repos/opensim-org/opensim-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/opensim-org/opensim-core/labels{/name}","releases_url":"https://api.github.com/repos/opensim-org/opensim-core/releases{/id}","deployments_url":"https://api.github.com/repos/opensim-org/opensim-core/deployments","created_at":"2014-06-12T16:57:56Z","updated_at":"2016-02-08T15:25:29Z","pushed_at":"2016-03-11T19:59:51Z","git_url":"git://github.com/opensim-org/opensim-core.git","ssh_url":"git@github.com:opensim-org/opensim-core.git","clone_url":"https://github.com/opensim-org/opensim-core.git","svn_url":"https://github.com/opensim-org/opensim-core","homepage":"https://opensim.stanford.edu","size":128460,"stargazers_count":27,"watchers_count":27,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":21,"mirror_url":null,"open_issues_count":246,"forks":21,"open_issues":246,"watchers":27,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/774"},"html":{"href":"https://github.com/opensim-org/opensim-core/pull/774"},"issue":{"href":"https://api.github.com/repos/opensim-org/opensim-core/issues/774"},"comments":{"href":"https://api.github.com/repos/opensim-org/opensim-core/issues/774/comments"},"review_comments":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/774/comments"},"review_comment":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/774/commits"},"statuses":{"href":"https://api.github.com/repos/opensim-org/opensim-core/statuses/123cce8cf37706f1c5da99c5f5efd1bbb703cb20"}}}}