Commit Graph

4652 Commits

Author SHA1 Message Date
AlexandruPopovici fa828cf427 Integrating section box variable thikness outlines in the viewer 2022-11-22 16:46:32 +02:00
AlexandruPopovici dc142f522b Merge branch 'main' into alex/bvh 2022-11-22 12:21:25 +02:00
Iain Sproat c53688c67e CI(CircleCI): Halt building if a draft PR (#1214)
* Halt building if a draft PR
2022-11-21 11:20:36 +00:00
AlexandruPopovici f148281ae2 First draft of outlines to section plane clips. Non-efficient 2022-11-18 12:37:54 +02:00
AlexandruPopovici d7b26c9ed4 Merge branch 'main' into alex/bvh 2022-11-15 18:20:40 +02:00
AlexandruPopovici 9fd98f6ed7 Fix for #1203 2022-11-15 18:08:17 +02:00
Dimitrie Stefanescu 22278af8d1 Merge pull request #1205 from specklesystems/dim/viewer-1201
Dim/viewer 1201
2022-11-15 15:28:30 +00:00
AlexandruPopovici 3779a6895c Fixed an issue with BVH building for uint16 indices. Removed some logs 2022-11-15 17:26:42 +02:00
AlexandruPopovici 93c5810387 Added the new API member inside IViewer. Fixed a typo inside a comment 2022-11-15 15:07:43 +02:00
Dimitrie Stefanescu 5b98fdc574 feat(viewer): drives iteration so we only traverse the world tree once, rather than n times 2022-11-15 11:30:52 +00:00
AlexandruPopovici 543fb765af Fixed conflicts 2022-11-15 12:41:04 +02:00
AlexandruPopovici c654736c50 Added some debug options for the bvhs in the sandbox 2022-11-15 12:38:36 +02:00
Kristaps Fabians Geikins f0524b53db fix: various security alert fixes (#1202)
* fix: some extra param validation for some API endpoints

* fix(server): potentially leaking internal error details

* fix: secure session cookie for ssl servers

* fix(server): fixing tests
2022-11-15 12:30:13 +02:00
Dimitrie Stefanescu 6f78f3597a feat(viewer): adds method to set colors by object ids from userspace (re #1201) 2022-11-14 20:30:53 +00:00
Gergő Jedlicska 3d6653f73b hotfix/2.9.2 (#1175)
* Update to new specklepy (#1173)

* Publish images for all branches but limit tagging
* only tag 'latest' and '2' when 'SHOULD_PUBLISH' variable is 'true'

* Publishing helm chart should check for `SHOULD_PUBLISH`

* Move blocking step to publish-helm chart, and allow images to be published

* Pin python requirements and bump to latest versions

* Fix EOL whitespace

* use valid version for psycopg2-binary (the clue is in the 2!)

* fix(fileimports): add exception printing to file imports

* fix(fileimports): bump specklepy version

move to a specklepy version that contains a fix for send without writing to disk

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>

* Fixes liveness and readiness checks to prevent CSRF error message (#1169)

- provides content-type header
- check that status code is 200

* Fixes broken helm template by adding quotation marks around liveness probe command (#1171)

* fix(server activities): make sure the stream events are properly dispatched

* feat(server webhooks): add scheduled orphaned webhook cleanup

* test(server webhooks): add test to webhook cleanup service

* feat(server webhooks): drop foreign key reference for webhooks schema to streams

* refactor(server req context): refactor req context to have the ip attribute for all requests

* feat(server objects rest api): add ratelimits to objects rest api endpoints

* fix(server rest api): properly handle returning 419

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
2022-11-09 13:23:32 +01:00
Iain Sproat 071a9588dd ci(snyk): snyk vulnerability scan of yarn package.json (#1192)
* ci(snyk): snyk vulnerability scan of yarn package.json
* Run with strict-out-of-sync=false
* only runs for main branch to prevent pollution of Snyk's dashboard with branches
2022-11-09 12:06:50 +00:00
Iain Sproat 8c067b1ad7 fix(preview-service prometheus): additional buckets in prometheus histogram (#1184)
All previews were in the 600 to infinity bucket of the histogram, rendering it effectively useless.
This PR adds additional larger buckets at 1200 and 1800 ranges to provide better granularity.
2022-11-04 18:21:37 +00:00
Dimitrie Stefanescu 464078893d Merge pull request #1183 from specklesystems/alex/ao-max-param
Fix for incorrect AO halos
2022-11-04 14:30:13 +00:00
AlexandruPopovici acc2e9688d Removed the maxDist calculation from the loop 2022-11-04 15:28:39 +02:00
AlexandruPopovici dc3fd1dfb1 Removed min and max distance from the sandbox UI since they are no longer used as params 2022-11-04 15:01:09 +02:00
AlexandruPopovici 7c6a09e4a5 Removed some debug code 2022-11-04 14:50:28 +02:00
AlexandruPopovici a0f7fdb50f Fixed an issue which was driving me crazy regarding the progressive AO. The high depth delta limit was set as a uniform parameter which did not work well for all possible stream dimensions and sizes. One of the consequences were some ghastly halos around poles of any kind in streams of a particular range of dimensions. We dropped the uniform parameter and replaced it with the normalized sampling ray length. This works well in general, the halos are gone. There's only one downside, when the camera gets really close to objects, the AO range drops more than we'd want. However it's not very visible and it's something I can live with 2022-11-04 14:47:32 +02:00
AlexandruPopovici 10771db1aa Integrated three-mesh-bvh's bvh with the viewer's raycast picking. Using a simple workaround for the library's need of re-sorting the index buffer. Implemented a new way of retrieving the objects from the batch based on the raycast hit result index which does not depend on the order inside the index buffer 2022-11-03 22:10:19 +02:00
Iain Sproat de9beccd22 Helm test is deployed as a job (#1174)
- this allows it to be identified in alerting more easily
2022-11-02 17:16:53 +00:00
Gergő Jedlicska c06650c475 Update to new specklepy (#1173)
* Publish images for all branches but limit tagging
* only tag 'latest' and '2' when 'SHOULD_PUBLISH' variable is 'true'

* Publishing helm chart should check for `SHOULD_PUBLISH`

* Move blocking step to publish-helm chart, and allow images to be published

* Pin python requirements and bump to latest versions

* Fix EOL whitespace

* use valid version for psycopg2-binary (the clue is in the 2!)

* fix(fileimports): add exception printing to file imports

* fix(fileimports): bump specklepy version

move to a specklepy version that contains a fix for send without writing to disk

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
2022-11-02 12:57:46 +01:00
Iain Sproat fc2534e9b4 Always build, except when branch (not main) does not have PR (#1167)
* Always build, except when branch (not main) does not have PR

* Logic fix

* Should fail the step

* Debug

* More circleci debugging

* More and more circleci debugging

* More more more debugging

* Attempt to explicitly exit

* 🤦 the script required a passing line in order to exit non-zero
2022-11-02 12:45:15 +01:00
Iain Sproat df250d616d Fixes broken helm template by adding quotation marks around liveness probe command (#1171) 2022-11-02 10:40:03 +00:00
Iain Sproat 0c99573bc6 Fixes liveness and readiness checks to prevent CSRF error message (#1169)
- provides content-type header
- check that status code is 200
2022-11-02 10:01:19 +00:00
AlexandruPopovici 048f1de3c9 Debuging bad max param 2022-11-02 10:16:07 +02:00
Alexandru Popovici 9abeb2645b New progressive rending pipeline. Progressive ambient occlusion (#1156)
* Started working on progressive sao

* Started working on the ao generation stage shader and pass

* Continued with progressive SAO. Added the accumulation pass

* Implemented progressive AO using the same estimator as for the dynamic one.

* First draft of progressive AO with multiple selectable estimators. WIP on final implementation

* Restructuring how the pipeline and it's passes work so we can extend/configure them more easily. Added the concept of SpecklePass

* A lot of changes. Pipeline rework is more or less complete. Added individual output for some pipeline passes that we might want to inspect inside the sandbox.

* Finished with displaying individual pipeline stages

* Intruduced accumulation frames properly at pipeline level. Cleaned up progressive AO shader and pass. Exposed the number of accumulation frames as well as the kernel size in the sandbox.

* Accumulation frame count is now reset after a resize

* In the end I just implemented my own stationary/dynamic detection routine since the events sent from the 'camera controller' are dogshit

* Implemented interpolating during frame accumulation between the dynamic SAO and the static AO. This makes the transition much more smooth and seamless than simply jumping straight to the static AO which begins accumulating from 0

* Added configurable intensity to static AO. Fixed an issue with static scenario detection where the accumulation frames were ran twice in succession, because the 'camera controller' is probably clamping the angles to X decimal points at the end of a camera motion cycle, which in turn triggers a camera move larger than our defined epsilon

* Dynamic AO at half res

* Some improvements to how we update the rendering pipeline and it's dynamic and progressive states

* Trying to fix the issue with artifacts on progressive AO on mac. seems to be depth encoding related. Changed the depth pass to render to 32 float texture to check if the artifacts are gone

* Trying out a new float->RGBA encoding and decoding

* Added ner and far camera planes controls to see how they're values change depth encoding precision

* Finally managed to get AO properly working with encoded linear depth

* Trying 24 bit encoding

* Fix for the macOS artifacts using linear depth buffer and a bias value

* Extended the camera controller class and added/changed a few things so that the controller doesn't mess up our camera movement and also we now rely on the events sent by it to determine stationary vs dynamic camera scenarios. This way we spare the rendered from having to determine camera movement deltas by itslef(only to have it ruined by the camera controller anyway)

* Added switching between perspective and linear depth when going from dynamic AO to progressive AO, so we don't have to integrate linear depth buffer sampling in the already existing features

* Disabled normal texture rendering for dynamic AO

* Some fixes and added dynamic AO back in at half res

* Fixed an issue with converging progressive pipeline when using a trackpad

* Implemented relative dynamic progressive AO kernel size

* Fixed compile error

* Fixed an issue with macOS and depth texture filtering

* Added half res depth buffer switching for dynamic AO

* Changed some params now that dynamic AO is at half res

* Made section boxes work properly with our new progressive pipeline

* Added correct kernel size computation for orthographic projection

* Patched the camera controls to send events when zooming in orthographic mode

* Some more integrations with camera views and fixed a bug with bad pipeline resets

* Small fix for zoom and startup reset

* Various fixes of issues I could find

* Removed longs

* preview-service now waits for the pipeline to convgerge before taking the screenshot

* Handled #1110. Added the concept of 'ObjectLayers' which uses three's existing implementation for selective layer rendering/lighting/picking. Also added the BaseSpecklePass abstract class which provides a default implementation for any subclassing pass that needs to use specific layers when rendering.

* Added more time between frames for the preview service. It seems to be generating the previews properly now

Co-authored-by: Alex <alex@192-168-0-159.rdsnet.ro>
Co-authored-by: Alex <alexandru.popovici@busymachines.com>
2022-11-01 16:30:36 +02:00
Iain Sproat 3d4b3b6979 Pin python requirements and bump to latest versions (#1140)
* Pin python requirements and bump to latest versions
* fix(fileimports): add exception printing to file imports

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2022-11-01 11:17:03 +00:00
Iain Sproat 1dac1e43b6 Fix build.sh as regex had features not available in bash regex (ere flavor) (#1166) 2022-11-01 11:03:15 +00:00
AlexandruPopovici fa9ad5b651 #1136 Removed ctrl+click debug feature 2022-11-01 11:46:25 +02:00
Iain Sproat a51ba5f4a9 Circleci manual holds (#1152)
* ci(circleci): introduces manual holds to prevent resource wastage

We were building all commits unnecessarily. The logic was not consistent for versioning and when to
build and when to publish. This PR addresses these issues.

* Replaces `should-build` with `build-approval`
* Replace `should-publish` with `publish-approval`

* Clean up image tagging logic
    - tags as latest when version is semver or semver-alpha.build_number
    - other commits aren't tagged as latest, and instead tagged with their branch name
    - move naming logic to common.sh script

* Push each tag individually to avoid pollution
    - docker engine used is shared amongst all runs of speckle-server pipeline, so pushing all tags indiscrimanately pushes images built on other CircleCI runs 😬

* Improve logging
* Do not require approval for any tagged commit
2022-11-01 08:52:51 +00:00
AlexandruPopovici 6250099687 Added more time between frames for the preview service. It seems to be generating the previews properly now 2022-10-31 16:47:21 +02:00
AlexandruPopovici 62b10797af Handled #1110. Added the concept of 'ObjectLayers' which uses three's existing implementation for selective layer rendering/lighting/picking. Also added the BaseSpecklePass abstract class which provides a default implementation for any subclassing pass that needs to use specific layers when rendering. 2022-10-31 14:41:36 +02:00
AlexandruPopovici b393fb1f4b Fixed conflicts 2022-10-31 11:33:32 +02:00
AlexandruPopovici 804aa5e595 Fix #1161 2022-10-31 10:58:20 +02:00
AlexandruPopovici b3f51e2c84 Merge branch 'main' into alex/sao-progressive 2022-10-28 17:57:36 +03:00
AlexandruPopovici 6d85acb9bb preview-service now waits for the pipeline to convgerge before taking the screenshot 2022-10-28 17:54:27 +03:00
AlexandruPopovici ee6df9484c Removed longs 2022-10-28 15:41:22 +03:00
AlexandruPopovici a3ddd4fb23 Various fixes of issues I could find 2022-10-28 15:35:12 +03:00
Alex 22e494d4d2 Small fix for zoom and startup reset 2022-10-28 14:54:36 +03:00
AlexandruPopovici b3ad159cd6 Some more integrations with camera views and fixed a bug with bad pipeline resets 2022-10-28 14:03:18 +03:00
AlexandruPopovici 2e4c65990f Patched the camera controls to send events when zooming in orthographic mode 2022-10-28 12:37:02 +03:00
AlexandruPopovici a140153a58 Added correct kernel size computation for orthographic projection 2022-10-28 12:31:19 +03:00
AlexandruPopovici 3b8a2a0c8c Made section boxes work properly with our new progressive pipeline 2022-10-27 18:55:35 +03:00
Alex 98e5dbfe15 Changed some params now that dynamic AO is at half res 2022-10-27 13:47:19 +03:00
Alex 639ae9cd2a Added half res depth buffer switching for dynamic AO 2022-10-27 13:12:08 +03:00
Kristaps Fabians Geikins 8daa427d62 fix(frontend): fix commit share btn looking off in light theme (#1153) 2022-10-27 12:22:28 +03:00