├── .browserslistrc ├── .eslintrc.js ├── .gitignore ├── .npmrc ├── README.md ├── babel.config.js ├── package-lock.json ├── package.json ├── public ├── favicon.ico └── index.html ├── server ├── database │ ├── connect.js │ └── models │ │ └── Sketch.js ├── index.js ├── middleware │ └── index.js └── routes │ ├── authentication │ ├── callback.js │ ├── index.js │ ├── login.js │ └── refresh.js │ ├── index.js │ └── sketches.js ├── src ├── App.vue ├── api │ ├── auth.js │ └── sketches.js ├── assets │ └── connect.jpg ├── components │ ├── common │ │ ├── Icon.vue │ │ ├── IconButton.vue │ │ ├── Renderer.vue │ │ ├── Thumbnail.vue │ │ └── UserPill.vue │ ├── education │ │ └── Education.vue │ └── visualizer │ │ ├── Code.vue │ │ ├── Connect.vue │ │ ├── ControlBar.vue │ │ ├── Keys.vue │ │ ├── SideBar.vue │ │ ├── Sketch.vue │ │ ├── control-bar │ │ ├── CurrentTrack.vue │ │ ├── FullScreen.vue │ │ ├── PlayerButtons.vue │ │ ├── SketchSelector.vue │ │ └── Sketches.vue │ │ └── side-bar │ │ ├── BeatInterval.vue │ │ ├── Configuration.vue │ │ ├── Contact.vue │ │ ├── Uniforms.vue │ │ ├── Variants.vue │ │ ├── Volume.vue │ │ └── uniforms │ │ ├── AddUniform.vue │ │ ├── Boolean.vue │ │ ├── Color.vue │ │ └── Number.vue ├── main.js ├── mixins │ ├── shuffle.js │ └── uniform.js ├── router │ └── index.js ├── sass │ ├── global.scss │ └── mixins │ │ ├── _page.scss │ │ ├── _separator.scss │ │ └── _share.scss ├── store │ ├── index.js │ ├── loop.js │ └── modules │ │ ├── education.js │ │ ├── keyboard.js │ │ ├── player.js │ │ ├── spotify.js │ │ ├── ui.js │ │ └── visualizer.js ├── util │ ├── browser.js │ ├── settings.js │ └── uniforms.js └── views │ ├── Home.vue │ ├── Privacy.vue │ └── Visualizer.vue └── vue.config.js /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not dead 4 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | 'extends': [ 7 | 'plugin:vue/essential', 8 | 'eslint:recommended' 9 | ], 10 | parserOptions: { 11 | parser: 'babel-eslint' 12 | }, 13 | rules: { 14 | 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 15 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off' 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | 25 | .env -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | @fortawesome:registry=https://npm.fontawesome.com/ 2 | //npm.fontawesome.com/:_authToken=${FONT_AWESOME} 3 | //registry.npmjs.org/:_authToken=${NPM_AUTH} 4 | //npm.pkg.github.com/:_authToken=${GITHUB_AUTH} -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # kaleidosync 3 | > A WebGL Spotify visualizer made with [Vue](https://github.com/vuejs/vue), [D3](https://github.com/d3/d3), and [Three.js](https://github.com/mrdoob/three.js/). 4 | 5 | #### Try it out at [www.kaleidosync.com](https://www.kaleidosync.com)! 6 | 7 | ## Background 8 | The Echo Nest represents the comprehensive algorithmic analysis of music. Having been acquired by Spotify, their analysis resources are available via the [Spotify API](https://developer.spotify.com/documentation/web-api/reference/tracks/get-audio-analysis/). Each song within Spotify's library has been fully analyzed: broken up into individual beats, segments, tatums, bars, and sections. There are variables assigned to describe pitch, timbre, and more esoteric descriptors like mood and "danceability." It's even possible to derive realtime volume information, all without processing the audio stream directly. 9 | 10 | This project is my take on using this data to produce visual experiences using the power of WebGL. 11 | 12 | ## Running Locally 13 | As of version 6.0.0 you won't be able to run this project locally in any reasonable/useful way due to how coupled it is with my (unpublished) shader authoring tools. If you absolutely must get this running on your machine, feel free to reach out to me and I'll walk you through the hurdles and what you'll need to build in order for it to be useful. 14 | 15 | ## Changelog 16 | > #### Version 6.1 17 | * Introduces dev mode, allowing live-editing of shaders and the creation of editable uniforms. 18 | 19 | > #### Version 6.0 20 | * Complete re-write. 21 | * Sketches have been removed from the codebase and are now stored in a database. 22 | * New architecture connects directly with my visualizer authoring tools, enabling the publishing of new visualizers with the push of a button. 23 | * Leverages the Spotify Web Playback SDK ([when available](https://developer.spotify.com/documentation/web-playback-sdk/#supported-browsers)), and falls back to legacy polling in browsers that are unsupported. 24 | 25 | > #### Version 5.5 26 | * Cleanup / bug fixes. 27 | * There are now 8 visualizers to choose from. 28 | 29 | > #### Version 5.4 30 | * Reduces the complexity of adding new visualizers. 31 | * Reverts back to the traditional polling when running the dev server. 32 | * Surfaces a control interface for WebGL scenes. 33 | 34 | > #### Version 5.3 35 | * There are now 7 visualizers to choose from. 36 | 37 | > #### Version 5.2 38 | * Refactor / rate limit debugging. 39 | 40 | > #### Version 5.1 41 | * There are now 6 visualizers to choose from. 42 | 43 | > #### Version 5.0 44 | * Major refactor. 45 | * There are now 5 visualizers to choose from. 46 | * Includes an interface for rendering fragment shaders. 47 | 48 | > #### Version 4.0 49 | * Project backbone has been abstracted away into its own library, [spotify-viz](https://github.com/zachwinter/spotify-viz). 50 | * Adoped [@vue/cli](https://cli.vuejs.org) for the UI layer. 51 | * There are now 4 visualizers to choose from. 52 | * User settings now persist when revisiting the site. 53 | * More graceful error handling and authentication flow. 54 | * This project now fully represents what's hosted on [www.kaleidosync.com](https://www.kaleidosync.com), instead of the bare-bones implementation that it was before. 55 | > #### Version 3.0 56 | * Complete refactor with no front end dependencies. 57 | * Transitioned to webpack from gulp. 58 | * Reactive data store using ES6 Proxies, semi-inspired by Vuex. 59 | * (Hopefully) less spaghetti and more comments. 60 | 61 | > #### Version 2.0 62 | * Re-implemented with `requestAnimationFrame()` 63 | * Now mobile-friendly, even on older devices. 64 | * Improved tweening. 65 | * Adjusts itself on window resize. 66 | * More accurate syncing with Spotify, including automatic self-correction. 67 | > #### Version 1.0 68 | * Holy shit, it's working... kind of. -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['@vue/cli-plugin-babel/preset'] 3 | } 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "kaleidosync-client", 3 | "version": "6.2.3", 4 | "scripts": { 5 | "start": "node ./server/index.js", 6 | "serve": "concurrently \"nodemon ./server/index.js --port 6868\" \"vue-cli-service serve\"", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "@fortawesome/fontawesome-svg-core": "^1.2.32", 12 | "@fortawesome/free-brands-svg-icons": "^5.15.1", 13 | "@fortawesome/pro-light-svg-icons": "^5.15.1", 14 | "@fortawesome/vue-fontawesome": "^2.0.0", 15 | "@zach.winter/common": "^1.0.13", 16 | "@zach.winter/vue-common": "^1.0.16", 17 | "axios": "^0.20.0", 18 | "body-parser": "^1.19.0", 19 | "core-js": "^3.6.5", 20 | "d3-array": "^2.8.0", 21 | "d3-interpolate": "^2.0.1", 22 | "d3-scale": "^3.2.3", 23 | "dotenv": "^8.2.0", 24 | "express": "^4.17.1", 25 | "express-history-api-fallback": "^2.2.1", 26 | "humps": "^2.0.1", 27 | "lodash": "^4.17.20", 28 | "mongoose": "^5.10.9", 29 | "query-string": "^6.13.5", 30 | "request": "^2.88.2", 31 | "three": "^0.137.0", 32 | "vue": "^2.6.11", 33 | "vue-analytics": "^5.22.1", 34 | "vue-codemirror": "^4.0.6", 35 | "vue-router": "^3.2.0", 36 | "vuex": "^3.4.0" 37 | }, 38 | "devDependencies": { 39 | "@vue/cli-plugin-babel": "~4.5.0", 40 | "@vue/cli-plugin-eslint": "~4.5.0", 41 | "@vue/cli-plugin-router": "~4.5.0", 42 | "@vue/cli-plugin-vuex": "~4.5.0", 43 | "@vue/cli-service": "~4.5.0", 44 | "babel-eslint": "^10.1.0", 45 | "concurrently": "^5.3.0", 46 | "eslint": "^6.7.2", 47 | "eslint-plugin-vue": "^6.2.2", 48 | "nodemon": "^2.0.4", 49 | "pug": "^3.0.0", 50 | "pug-plain-loader": "^1.0.0", 51 | "sass": "^1.26.5", 52 | "sass-loader": "^8.0.2", 53 | "vue-template-compiler": "^2.6.11" 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zachwinter/kaleidosync/7256614d3f8002854ff128f334c4c9c7dfec2819/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |Last updated: January 07, 2021
10 |This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information 11 | when You use the Service and tells You about Your privacy rights and how the law protects You.
12 |We use Your Personal data to provide and improve the Service. By using the Service, You agree to the collection and 13 | use of information in accordance with this Privacy Policy.
14 |The words of which the initial letter is capitalized have meanings defined under the following conditions. The 17 | following definitions shall have the same meaning regardless of whether they appear in singular or in plural.
18 |For the purposes of this Privacy Policy:
20 |Account means a unique account created for You to access our Service or parts of our Service. 23 |
24 |Business, for the purpose of the CCPA (California Consumer Privacy Act), refers to the Company 27 | as the legal entity that collects Consumers' personal information and determines the purposes and means of the 28 | processing of Consumers' personal information, or on behalf of which such information is collected and that 29 | alone, or jointly with others, determines the purposes and means of the processing of consumers' personal 30 | information, that does business in the State of California.
31 |Company (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to 34 | Kaleidosync.
35 |For the purpose of the GDPR, the Company is the Data Controller.
36 |Consumer, for the purpose of the CCPA (California Consumer Privacy Act), means a natural 39 | person who is a California resident. A resident, as defined in the law, includes (1) every individual who is in 40 | the USA for other than a temporary or transitory purpose, and (2) every individual who is domiciled in the USA 41 | who is outside the USA for a temporary or transitory purpose.
42 |Cookies are small files that are placed on Your computer, mobile device or any other device by 45 | a website, containing the details of Your browsing history on that website among its many uses.
46 |Country refers to: California, United States
49 |Data Controller, for the purposes of the GDPR (General Data Protection Regulation), refers to 52 | the Company as the legal person which alone or jointly with others determines the purposes and means of the 53 | processing of Personal Data.
54 |Device means any device that can access the Service such as a computer, a cellphone or a 57 | digital tablet.
58 |Do Not Track (DNT) is a concept that has been promoted by US regulatory authorities, in 61 | particular the U.S. Federal Trade Commission (FTC), for the Internet industry to develop and implement a 62 | mechanism for allowing internet users to control the tracking of their online activities across websites.
63 |Facebook Fan Page is a public profile named Kaleidosync specifically created by the Company on 66 | the Facebook social network, accessible from https://www.facebook.com/Kaleidosync-106540028045934
68 |Personal Data is any information that relates to an identified or identifiable individual.
71 |For the purposes for GDPR, Personal Data means any information relating to You such as a name, an 72 | identification number, location data, online identifier or to one or more factors specific to the physical, 73 | physiological, genetic, mental, economic, cultural or social identity.
74 |For the purposes of the CCPA, Personal Data means any information that identifies, relates to, describes or is 75 | capable of being associated with, or could reasonably be linked, directly or indirectly, with You.
76 |Sale, for the purpose of the CCPA (California Consumer Privacy Act), means selling, renting, 79 | releasing, disclosing, disseminating, making available, transferring, or otherwise communicating orally, in 80 | writing, or by electronic or other means, a Consumer's personal information to another business or a third party 81 | for monetary or other valuable consideration.
82 |Service refers to the Website.
85 |Service Provider means any natural or legal person who processes the data on behalf of the 88 | Company. It refers to third-party companies or individuals employed by the Company to facilitate the Service, to 89 | provide the Service on behalf of the Company, to perform services related to the Service or to assist the 90 | Company in analyzing how the Service is used. 91 | For the purpose of the GDPR, Service Providers are considered Data Processors.
92 |Third-party Social Media Service refers to any website or any social network website through 95 | which a User can log in or create an account to use the Service.
96 |Usage Data refers to data collected automatically, either generated by the use of the Service 99 | or from the Service infrastructure itself (for example, the duration of a page visit).
100 |Website refers to Kaleidosync, accessible from https://www.kaleidosync.com
104 |You means the individual accessing or using the Service, or the company, or other legal entity 107 | on behalf of which such individual is accessing or using the Service, as applicable.
108 |Under GDPR (General Data Protection Regulation), You can be referred to as the Data Subject or as the User as 109 | you are the individual using the Service.
110 |While using Our Service, We may ask You to provide Us with certain personally identifiable information that can be 116 | used to contact or identify You. Personally identifiable information may include, but is not limited to:
117 |Usage Data is collected automatically when using the Service.
123 |Usage Data may include information such as Your Device's Internet Protocol address (e.g. IP address), browser type, 124 | browser version, the pages of our Service that You visit, the time and date of Your visit, the time spent on those 125 | pages, unique device identifiers and other diagnostic data.
126 |When You access the Service by or through a mobile device, We may collect certain information automatically, 127 | including, but not limited to, the type of mobile device You use, Your mobile device unique ID, the IP address of 128 | Your mobile device, Your mobile operating system, the type of mobile Internet browser You use, unique device 129 | identifiers and other diagnostic data.
130 |We may also collect information that Your browser sends whenever You visit our Service or when You access the 131 | Service by or through a mobile device.
132 |We use Cookies and similar tracking technologies to track the activity on Our Service and store certain 134 | information. Tracking technologies used are beacons, tags, and scripts to collect and track information and to 135 | improve and analyze Our Service. The technologies We use may include:
136 |Cookies can be "Persistent" or "Session" Cookies. Persistent Cookies remain on Your personal computer or mobile 157 | device when You go offline, while Session Cookies are deleted as soon as You close Your web browser. You can learn 158 | more about cookies here: All About Cookies by 159 | TermsFeed.
160 |We use both Session and Persistent Cookies for the purposes set out below:
161 |Necessary / Essential Cookies
164 |Type: Session Cookies
165 |Administered by: Us
166 |Purpose: These Cookies are essential to provide You with services available through the Website and to enable 167 | You to use some of its features. They help to authenticate users and prevent fraudulent use of user accounts. 168 | Without these Cookies, the services that You have asked for cannot be provided, and We only use these Cookies to 169 | provide You with those services.
170 |Cookies Policy / Notice Acceptance Cookies
173 |Type: Persistent Cookies
174 |Administered by: Us
175 |Purpose: These Cookies identify if users have accepted the use of cookies on the Website.
176 |Functionality Cookies
179 |Type: Persistent Cookies
180 |Administered by: Us
181 |Purpose: These Cookies allow us to remember choices You make when You use the Website, such as remembering your 182 | login details or language preference. The purpose of these Cookies is to provide You with a more personal 183 | experience and to avoid You having to re-enter your preferences every time You use the Website.
184 |Tracking and Performance Cookies
187 |Type: Persistent Cookies
188 |Administered by: Third-Parties
189 |Purpose: These Cookies are used to track information about traffic to the Website and how users use the 190 | Website. The information gathered via these Cookies may directly or indirectly identify you as an individual 191 | visitor. This is because the information collected is typically linked to a pseudonymous identifier associated 192 | with the device you use to access the Website. We may also use these Cookies to test new pages, features or new 193 | functionality of the Website to see how our users react to them.
194 |Targeting and Advertising Cookies
197 |Type: Persistent Cookies
198 |Administered by: Third-Parties
199 |Purpose: These Cookies track your browsing habits to enable Us to show advertising which is more likely to be 200 | of interest to You. These Cookies use information about your browsing history to group You with other users who 201 | have similar interests. Based on that information, and with Our permission, third party advertisers can place 202 | Cookies to enable them to show adverts which We think will be relevant to your interests while You are on third 203 | party websites.
204 |For more information about the cookies we use and your choices regarding cookies, please visit our Cookies Policy 207 | or the Cookies section of our Privacy Policy.
208 |The Company may use Personal Data for the following purposes:
210 |To provide and maintain our Service, including to monitor the usage of our Service.
213 |To manage Your Account: to manage Your registration as a user of the Service. The Personal 216 | Data You provide can give You access to different functionalities of the Service that are available to You as a 217 | registered user.
218 |For the performance of a contract: the development, compliance and undertaking of the purchase 221 | contract for the products, items or services You have purchased or of any other contract with Us through the 222 | Service.
223 |To contact You: To contact You by email, telephone calls, SMS, or other equivalent forms of 226 | electronic communication, such as a mobile application's push notifications regarding updates or informative 227 | communications related to the functionalities, products or contracted services, including the security updates, 228 | when necessary or reasonable for their implementation.
229 |To provide You with news, special offers and general information about other goods, services 232 | and events which we offer that are similar to those that you have already purchased or enquired about unless You 233 | have opted not to receive such information.
234 |To manage Your requests: To attend and manage Your requests to Us.
237 |For business transfers: We may use Your information to evaluate or conduct a merger, 240 | divestiture, restructuring, reorganization, dissolution, or other sale or transfer of some or all of Our assets, 241 | whether as a going concern or as part of bankruptcy, liquidation, or similar proceeding, in which Personal Data 242 | held by Us about our Service users is among the assets transferred.
243 |For other purposes: We may use Your information for other purposes, such as data analysis, 246 | identifying usage trends, determining the effectiveness of our promotional campaigns and to evaluate and improve 247 | our Service, products, services, marketing and your experience.
248 |We may share Your personal information in the following situations:
251 |The Company will retain Your Personal Data only for as long as is necessary for the purposes set out in this 274 | Privacy Policy. We will retain and use Your Personal Data to the extent necessary to comply with our legal 275 | obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, 276 | and enforce our legal agreements and policies.
277 |The Company will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a 278 | shorter period of time, except when this data is used to strengthen the security or to improve the functionality of 279 | Our Service, or We are legally obligated to retain this data for longer time periods.
280 |Your information, including Personal Data, is processed at the Company's operating offices and in any other places 282 | where the parties involved in the processing are located. It means that this information may be transferred to — and 283 | maintained on — computers located outside of Your state, province, country or other governmental jurisdiction where 284 | the data protection laws may differ than those from Your jurisdiction.
285 |Your consent to this Privacy Policy followed by Your submission of such information represents Your agreement to 286 | that transfer.
287 |The Company will take all steps reasonably necessary to ensure that Your data is treated securely and in accordance 288 | with this Privacy Policy and no transfer of Your Personal Data will take place to an organization or a country 289 | unless there are adequate controls in place including the security of Your data and other personal information.
290 |If the Company is involved in a merger, acquisition or asset sale, Your Personal Data may be transferred. We will 293 | provide notice before Your Personal Data is transferred and becomes subject to a different Privacy Policy.
294 |Under certain circumstances, the Company may be required to disclose Your Personal Data if required to do so by law 296 | or in response to valid requests by public authorities (e.g. a court or a government agency).
297 |The Company may disclose Your Personal Data in the good faith belief that such action is necessary to:
299 |The security of Your Personal Data is important to Us, but remember that no method of transmission over the 308 | Internet, or method of electronic storage is 100% secure. While We strive to use commercially acceptable means to 309 | protect Your Personal Data, We cannot guarantee its absolute security.
310 |The Service Providers We use may have access to Your Personal Data. These third-party vendors collect, store, use, 312 | process and transfer information about Your activity on Our Service in accordance with their Privacy Policies.
313 |We may use third-party Service providers to monitor and analyze the use of our Service.
315 |Google Analytics
318 |Google Analytics is a web analytics service offered by Google that tracks and reports website traffic. Google 319 | uses the data collected to track and monitor the use of our Service. This data is shared with other Google 320 | services. Google may use the collected data to contextualize and personalize the ads of its own advertising 321 | network.
322 |You can opt-out of having made your activity on the Service available to Google Analytics by installing the 323 | Google Analytics opt-out browser add-on. The add-on prevents the Google Analytics JavaScript (ga.js, 324 | analytics.js and dc.js) from sharing information with Google Analytics about visits activity.
325 |For more information on the privacy practices of Google, please visit the Google Privacy & Terms web page: 326 | https://policies.google.com/privacy
328 |We may use Service Providers to show advertisements to You to help support and maintain Our Service.
332 |Google AdSense & DoubleClick Cookie
335 |Google, as a third party vendor, uses cookies to serve ads on our Service. Google's use of the DoubleClick 336 | cookie enables it and its partners to serve ads to our users based on their visit to our Service or other 337 | websites on the Internet.
338 |You may opt out of the use of the DoubleClick Cookie for interest-based advertising by visiting the Google Ads 339 | Settings web page: http://www.google.com/ads/preferences/
341 |We may process Personal Data under the following conditions:
346 |In any case, the Company will gladly help to clarify the specific legal basis that applies to the processing, and 361 | in particular whether the provision of Personal Data is a statutory or contractual requirement, or a requirement 362 | necessary to enter into a contract.
363 |The Company undertakes to respect the confidentiality of Your Personal Data and to guarantee You can exercise Your 365 | rights.
366 |You have the right under this Privacy Policy, and by law if You are within the EU, to:
367 |You may exercise Your rights of access, rectification, cancellation and opposition by contacting Us. Please note 390 | that we may ask You to verify Your identity before responding to such requests. If You make a request, We will try 391 | our best to respond to You as soon as possible.
392 |You have the right to complain to a Data Protection Authority about Our collection and use of Your Personal Data. 393 | For more information, if You are in the European Economic Area (EEA), please contact Your local data protection 394 | authority in the EEA.
395 |The Company is the Data Controller of Your Personal Data collected while using the Service. As operator of the 398 | Facebook Fan Page https://www.facebook.com/Kaleidosync-106540028045934, the Company and the operator of the 400 | social network Facebook are Joint Controllers.
401 |The Company has entered into agreements with Facebook that define the terms for use of the Facebook Fan Page, among 402 | other things. These terms are mostly based on the Facebook Terms of Service: https://www.facebook.com/terms.php
405 |Visit the Facebook Privacy Policy https://www.facebook.com/policy.php for more information about how Facebook manages Personal 407 | data or contact Facebook online, or by mail: Facebook, Inc. ATTN, Privacy Operations, 1601 Willow Road, Menlo Park, 408 | CA 94025, United States.
409 |We use the Facebook Insights function in connection with the operation of the Facebook Fan Page and on the basis of 411 | the GDPR, in order to obtain anonymized statistical data about Our users.
412 |For this purpose, Facebook places a Cookie on the device of the user visiting Our Facebook Fan Page. Each Cookie 413 | contains a unique identifier code and remains active for a period of two years, except when it is deleted before the 414 | end of this period.
415 |Facebook receives, records and processes the information stored in the Cookie, especially when the user visits the 416 | Facebook services, services that are provided by other members of the Facebook Fan Page and services by other 417 | companies that use Facebook services.
418 |For more information on the privacy practices of Facebook, please visit Facebook Privacy Policy here: https://www.facebook.com/full_data_use_policy
421 |This privacy notice section for California residents supplements the information contained in Our Privacy Policy 423 | and it applies solely to all visitors, users, and others who reside in the State of California.
424 |We collect information that identifies, relates to, describes, references, is capable of being associated with, or 426 | could reasonably be linked, directly or indirectly, with a particular Consumer or Device. The following is a list of 427 | categories of personal information which we may collect or may have been collected from California residents within 428 | the last twelve (12) months.
429 |Please note that the categories and examples provided in the list below are those defined in the CCPA. This does 430 | not mean that all examples of that category of personal information were in fact collected by Us, but reflects our 431 | good faith belief to the best of our knowledge that some of that information from the applicable category may be and 432 | may have been collected. For example, certain categories of personal information would only be collected if You 433 | provided such personal information directly to Us.
434 |Category A: Identifiers.
437 |Examples: A real name, alias, postal address, unique personal identifier, online identifier, Internet Protocol 438 | address, email address, account name, driver's license number, passport number, or other similar identifiers. 439 |
440 |Collected: Yes.
441 |Category B: Personal information categories listed in the California Customer Records statute (Cal. 444 | Civ. Code § 1798.80(e)).
445 |Examples: A name, signature, Social Security number, physical characteristics or description, address, 446 | telephone number, passport number, driver's license or state identification card number, insurance policy 447 | number, education, employment, employment history, bank account number, credit card number, debit card number, 448 | or any other financial information, medical information, or health insurance information. Some personal 449 | information included in this category may overlap with other categories.
450 |Collected: Yes.
451 |Category C: Protected classification characteristics under California or federal law.
454 |Examples: Age (40 years or older), race, color, ancestry, national origin, citizenship, religion or creed, 455 | marital status, medical condition, physical or mental disability, sex (including gender, gender identity, gender 456 | expression, pregnancy or childbirth and related medical conditions), sexual orientation, veteran or military 457 | status, genetic information (including familial genetic information).
458 |Collected: No.
459 |Category D: Commercial information.
462 |Examples: Records and history of products or services purchased or considered.
463 |Collected: No.
464 |Category E: Biometric information.
467 |Examples: Genetic, physiological, behavioral, and biological characteristics, or activity patterns used to 468 | extract a template or other identifier or identifying information, such as, fingerprints, faceprints, and 469 | voiceprints, iris or retina scans, keystroke, gait, or other physical patterns, and sleep, health, or exercise 470 | data.
471 |Collected: No.
472 |Category F: Internet or other similar network activity.
475 |Examples: Interaction with our Service or advertisement.
476 |Collected: Yes.
477 |Category G: Geolocation data.
480 |Examples: Approximate physical location.
481 |Collected: No.
482 |Category H: Sensory data.
485 |Examples: Audio, electronic, visual, thermal, olfactory, or similar information.
486 |Collected: No.
487 |Category I: Professional or employment-related information.
490 |Examples: Current or past job history or performance evaluations.
491 |Collected: No.
492 |Category J: Non-public education information (per the Family Educational Rights and Privacy Act (20 495 | U.S.C. Section 1232g, 34 C.F.R. Part 99)).
496 |Examples: Education records directly related to a student maintained by an educational institution or party 497 | acting on its behalf, such as grades, transcripts, class lists, student schedules, student identification codes, 498 | student financial information, or student disciplinary records.
499 |Collected: No.
500 |Category K: Inferences drawn from other personal information.
503 |Examples: Profile reflecting a person's preferences, characteristics, psychological trends, predispositions, 504 | behavior, attitudes, intelligence, abilities, and aptitudes.
505 |Collected: No.
506 |Under CCPA, personal information does not include:
509 |We obtain the categories of personal information listed above from the following categories of sources:
524 |We may use or disclose personal information We collect for "business purposes" or "commercial purposes" (as defined 536 | under the CCPA), which may include the following examples:
537 |Please note that the examples provided above are illustrative and not intended to be exhaustive. For more details 551 | on how we use this information, please refer to the "Use of Your Personal Data" section.
552 |If We decide to collect additional categories of personal information or use the personal information We collected 553 | for materially different, unrelated, or incompatible purposes We will update this Privacy Policy.
554 |We may use or disclose and may have used or disclosed in the last twelve (12) months the following categories of 556 | personal information for business or commercial purposes:
557 |Category A: Identifiers
560 |Category B: Personal information categories listed in the California Customer Records statute (Cal. Civ. Code § 563 | 1798.80(e))
564 |Category F: Internet or other similar network activity
567 |Please note that the categories listed above are those defined in the CCPA. This does not mean that all examples of 570 | that category of personal information were in fact disclosed, but reflects our good faith belief to the best of our 571 | knowledge that some of that information from the applicable category may be and may have been disclosed.
572 |When We disclose personal information for a business purpose or a commercial purpose, We enter a contract that 573 | describes the purpose and requires the recipient to both keep that personal information confidential and not use it 574 | for any purpose except performing the contract.
575 |As defined in the CCPA, "sell" and "sale" mean selling, renting, releasing, disclosing, disseminating, making 577 | available, transferring, or otherwise communicating orally, in writing, or by electronic or other means, a 578 | consumer's personal information by the business to a third party for valuable consideration. This means that We may 579 | have received some kind of benefit in return for sharing personal Iinformation, but not necessarily a monetary 580 | benefit.
581 |Please note that the categories listed below are those defined in the CCPA. This does not mean that all examples of 582 | that category of personal information were in fact sold, but reflects our good faith belief to the best of our 583 | knowledge that some of that information from the applicable category may be and may have been shared for value in 584 | return.
585 |We may sell and may have sold in the last twelve (12) months the following categories of personal information:
586 |Category A: Identifiers
589 |Category B: Personal information categories listed in the California Customer Records statute (Cal. Civ. Code § 592 | 1798.80(e))
593 |Category F: Internet or other similar network activity
596 |We may share Your personal information identified in the above categories with the following categories of third 600 | parties:
601 |Service Providers
604 |Our affiliates
607 |Our business partners
610 |Third party vendors to whom You or Your agents authorize Us to disclose Your personal information in connection 613 | with products or services We provide to You
614 |We do not sell the personal information of Consumers We actually know are less than 16 years of age, unless We 618 | receive affirmative authorization (the "right to opt-in") from either the Consumer who is between 13 and 16 years of 619 | age, or the parent or guardian of a Consumer less than 13 years of age. Consumers who opt-in to the sale of personal 620 | information may opt-out of future sales at any time. To exercise the right to opt-out, You (or Your authorized 621 | representative) may submit a request to Us by contacting Us.
622 |If You have reason to believe that a child under the age of 13 (or 16) has provided Us with personal information, 623 | please contact Us with sufficient detail to enable Us to delete that information.
624 |The CCPA provides California residents with specific rights regarding their personal information. If You are a 626 | resident of California, You have the following rights:
627 |In order to exercise any of Your rights under the CCPA, and if You are a California resident, You can contact Us: 689 |
690 |By email: contact@zachwinter.com
693 |By phone number: 850.842.8313
696 |Only You, or a person registered with the California Secretary of State that You authorize to act on Your behalf, 699 | may make a verifiable request related to Your personal information.
700 |Your request to Us must:
701 |We cannot respond to Your request or provide You with the required information if We cannot:
708 |We will disclose and deliver the required information free of charge within 45 days of receiving Your verifiable 713 | request. The time period to provide the required information may be extended once by an additional 45 days when 714 | reasonable necessary and with prior notice.
715 |Any disclosures We provide will only cover the 12-month period preceding the verifiable request's receipt.
716 |For data portability requests, We will select a format to provide Your personal information that is readily useable 717 | and should allow You to transmit the information from one entity to another entity without hindrance.
718 |You have the right to opt-out of the sale of Your personal information. Once We receive and confirm a verifiable 720 | consumer request from You, we will stop selling Your personal information. To exercise Your right to opt-out, please 721 | contact Us.
722 |The Service Providers we partner with (for example, our analytics or advertising partners) may use technology on 723 | the Service that sells personal information as defined by the CCPA law. If you wish to opt out of the use of Your 724 | personal information for interest-based advertising purposes and these potential sales as defined under CCPA law, 725 | you may do so by following the instructions below.
726 |Please note that any opt out is specific to the browser You use. You may need to opt out on every browser that You 727 | use.
728 |You can opt out of receiving ads that are personalized as served by our Service Providers by following our 730 | instructions presented on the Service:
731 |The opt out will place a cookie on Your computer that is unique to the browser You use to opt out. If you change 740 | browsers or delete the cookies saved by your browser, You will need to opt out again.
741 |Your mobile device may give You the ability to opt out of the use of information about the apps You use in order to 743 | serve You ads that are targeted to Your interests:
744 |You can also stop the collection of location information from Your mobile device by changing the preferences on 749 | Your mobile device.
750 |Our Service does not respond to Do Not Track signals.
752 |However, some third party websites do keep track of Your browsing activities. If You are visiting such websites, 753 | You can set Your preferences in Your web browser to inform websites that You do not want to be tracked. You can 754 | enable or disable DNT by visiting the preferences or settings page of Your web browser.
755 |Under California Civil Code Section 1798 (California's Shine the Light law), California residents with an 757 | established business relationship with us can request information once a year about sharing their Personal Data with 758 | third parties for the third parties' direct marketing purposes.
759 |If you'd like to request more information under the California Shine the Light law, and if You are a California 760 | resident, You can contact Us using the contact information provided below.
761 |California Business and Professions Code section 22581 allow California residents under the age of 18 who are 763 | registered users of online sites, services or applications to request and obtain removal of content or information 764 | they have publicly posted.
765 |To request removal of such data, and if You are a California resident, You can contact Us using the contact 766 | information provided below, and include the email address associated with Your account.
767 |Be aware that Your request does not guarantee complete or comprehensive removal of content or information posted 768 | online and that the law may not permit or require removal in certain circumstances.
769 |Our Service may contain links to other websites that are not operated by Us. If You click on a third party link, 771 | You will be directed to that third party's site. We strongly advise You to review the Privacy Policy of every site 772 | You visit.
773 |We have no control over and assume no responsibility for the content, privacy policies or practices of any third 774 | party sites or services.
775 |We may update Our Privacy Policy from time to time. We will notify You of any changes by posting the new Privacy 777 | Policy on this page.
778 |We will let You know via email and/or a prominent notice on Our Service, prior to the change becoming effective and 779 | update the "Last updated" date at the top of this Privacy Policy.
780 |You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are 781 | effective when they are posted on this page.
782 |If you have any questions about this Privacy Policy, You can contact us:
784 |By email: contact@zachwinter.com
787 |By phone number: 850.842.8313
790 |