top of page
Writer's pictureStevan Dedovic

Reverse Zoology

This post is republished from it's original on my personal site, here: dedovic.com/writings/reverse-zoology.

 

Update March, 2022: Ellie and I will be participating in the Bright Moments Berlin event in April! Minting will be done in-person and via surrogate. If you’re able to, come out and support us! More info at: brightmoments.io/cryptoberlin

 

A few months ago I was introduced to Ellie Pritts, an outstanding artist out of L.A. who is popular in the NFT and digital art community. She was seeking a technical partner to work on a project, and I needed someone who can navigate art as a business. Our goals and personalities lined up pretty well, so, we decided to partner on what has now become the Reverse Zoology project.



It’s been a few months since we first chatted, and a lot of progress has been made. My goal here is to talk through some technical details, how the art works, and the numerous pitfalls I encountered along the way. I imagine there is more to discuss than can be done in a single post, but I have to begin somewhere.


An Overview

Reverse Zoology is an evolution of frogeforms with each piece created by the same process, parameterized.

For a single artwork, it looks something like this:

  1. Select 3 source images from a collection provided by Ellie

  2. Visually morph between the images, slowly changing

  3. Warp the outcome from step 2, making it wavy or distorted

  4. Composite the warped video from step 3 onto a background video

Ellie was responsible for generating the source images (Step 1) using a complex, psychedelic analog process, GANs, and much more! But that’s beyond the scope of my work and you can read about it in this Twitter thread.


Morphing

To visually morph between the images, I attempt to replicate an effect known as a Morph Cut or Smooth Cut.


The Morph Cut is a video transition effect that comes as a stock effect in many video editing softwares, such as Adobe Premier Pro and DaVinci Resolve. It is typically used to remove small sections of interviews, for example between unwanted pauses or stutter. In Adobe Premier Pro, according to their documentation, this is achieved using a combination of “face tracking and optical flow interpolation to create a seamless transition” between sections of video. DaVinci Resolve takes a similar approach, using optical flow processing, to perform the morphing effect. This transition becomes interesting when stretching it over the recommended range, of a few frames, to something much longer, like 10 or more seconds.



But how do these effects actually work? To answer that, we first need to look at a video morphing effect. My favorite use of morphing, and one of the earliest, come the amazing sequence at the end of Michael Jackson’s Black or White music video. See it happen around the 5:27 mark.



To achieve the face morphing effect, a transformation between two faces is performed where important features (eyes, nose, mouth, etc.) are moved and stretched from one person to the other. Next, the colors of individual pixels must be mixed to seamlessly transition over the duration of the effect.


A Custom Morphing Effect

This is where optical flow processing comes into play. Optical flow is a description of the motion of high-level features between two frames of video. For example, imagine a video of a basketball. The optical flow between two consecutive frames should tell us the ball is moving down while the background is static. Maybe a bird is somewhere in the shot, and that has its own motion. These are all high-level features, not individual pixels or edges.


Using an optical flow algorithm should allow me to predict the motion of things between two frames of video, or, if I feed it two of Ellie’s GAN animals, the optical flow between the two may yield some interesting results. The hope is mapping visually similar features and morphing it in an interesting way. Luckily for me, OpenCV has a handful of (mostly) out-of-the-box optical flow processing algorithms. The output of these algorithms is a vector field, telling me where the algorithms think regions of the first image move to line up on the second image.

The morphing effect now looks something like this:

  1. Get two source images, A and B

  2. Calculate the optical flow fields

    1. Flow AB = Image A → Image B

    2. Flow BA = Image B → Image A

  3. For every pixel in Image A

    1. Move it based on Flow AB

    2. Change the color, mixing between Image A and Image B

  4. Repeat for every pixel in Image B, using Flow BA

So… what does that look like?



Awesome! It’s not the same as Premier Pro but its unique and I can parameterize the effect to fit the content.

Warping

Now that morphing is out of the way, the next step is to warp the video, starting by defining warping. Warping is a distortion effect on a video. Something like the effect of ripples of water or of looking through a thick piece of glass. It means the light coming into my eyes isn’t traveling a straight path, its bent, bounced, blocked along the way. So, why does that happen, in the case of thick, abnormal glass?

Light refracts. If a ray of light travels through a medium of different density or composition as air, it will not travel a straight path. That’s why a straw or pen looks weird in a glass of water, like the image below.



Water causes refraction in what we see because of the physics of light. It follows well-known rules, and, more importantly, it follows well documented rules. Rules that computer graphics folk have already figured out and implemented - meaning I can simulate light refraction without having to reinvent too much.

So let’s describe a system for warping an image. We have:

  • a coordinate system. X is left-right, Y is up-down, Z is in-out

  • a camera, somewhere on the Z axis, looking in

  • an image sitting on the XY plane, looking out to the camera

  • every pixel of my screen is mapped 1:1 to a pixel on the image

That’s easy, I am displaying an image without modification. But now, let’s add a glass material. This will be a simple differentiable height map, meaning I can get the height of the glass and its normal, i.e., the 3D angle of the surface, by specifying an X and Y coordinate.

Now, updating the warping system from below, we must:

  1. calculate how far a ray of light travels before it hits the glass

  2. find the angle between the ray of light and the surface of the glass

  3. use Snell’s law to determine the angle of refraction based on the properties of the glass and the air

  4. measure how long the ray of light will travel, in its new direction, before hitting the image

  5. determine the pixel which is hit by the refracted ray of light

Now we have a physically based warping effect!



Putting it all Together


I will cover this section in more detail in a follow up post. Feel free to contact me if there is something you want me to discuss or detail!


Tools, Languages, and Frameworks

I chose to develop the main processing application in Rust. I wanted a performant language with fine-grained control over parallel programming, which excluded Python, Javascript, and Ruby. Not only that, but I also needed access to many low-level libraries and APIs, opting not to use a JVM language. Rust is fun and I find C++ to be verbose and dangerous.


For managing dependencies, the Nix package manager seemed like a great fit. I’m writing code on my Mac and need to have my partner’s laptop working without issue. Installing OpenCV, GStreamer, Rust, etc. on a phone call was a non-option. But a simple git clone && nix-shell could work. I did have some issues making the main codebase function on both Mac and Linux, and I don’t know if I’ll ever figure that out. Nix is simply not friendly when it comes to graphics applications.


For optical flow processing, the heavy lifting is done by OpenCV. For high-performance morphing, warping, and compositing, I wrote OpenCL kernels. I started the project writing OpenGL shaders but realized this isn’t ideal. I don’t need any OpenGL context since I will be writing compute shaders, I’m essentially bastardizing the framework for my use case. OpenCL is smoother sailing.


For the UI, I decided on Nannou and Conrod. This was a mistake, but I’m living with it. Nannou is a good project, but not well suited for building UIs that are decoupled from some underlying computation. What makes it even more difficult the Conrod project - it is not maintained and a headache to use. If I could rewrite everything from scratch, I would stick to a client-server model, possibly communicating over TCP or HTTP.


Closing Remarks


Overall, this has been one of the biggest projects I’ve embarked on. I made numerous mistakes and learned many hard lessons. It is the single biggest Rust project I’ve worked on, bumping against many rough edges of the language. I have to say, I’m a Rust evangelist now. And a Nix evangelist too.


The next few topics I think I’ll cover are:

  • Glass warping, in detail, with some actual code

  • OpenCL kernels and performance considerations

  • My GStreamer based video frame grabber

  • Thoughts on using Rust, OpenCV, OpenCL, and Nix together to create a (mostly) cross-os development environment


 

Stevan Dedovic is a software engineer and visual artist based out of Chicago. His focus is on computation expressionism, high performance software, and sharing what he learns along the way. You can follow his work through Instagram, @mr_praline, or on his personal site, dedovic.com.


466 views127 comments

Recent Posts

See All

127 Comments


NEERAJ MISHRA
NEERAJ MISHRA
an hour ago

If you're looking for journals that offer fast-track publishing for research papers, here are some tips and resources:

1. Fast-Track Journals

Many journals provide expedited review and publication processes for authors who need their work published quickly. These options often involve additional fees or strict manuscript requirements. Below are some suggestions:

Actionable Steps

  • Identify Your Target Journal: Select a reputable journal in your field with a fast publication process.

  • Contact Editors: Email the editor to inquire about expedited options if they're not explicitly listed.

  • Ensure Readiness: Ensure your manuscript is error-free and formatted according to the journal's…


Like

seheti5548
3 days ago

https://forumweb.hosting/members/cafosi5225.31666/#about

https://www.miguelassis.com/group/mysite-231-group/discussion/eff296b2-d84a-42c2-b5c2-d218edff7280

https://trabajo.merca20.com/author/letog51430/

http://www.biznas.com/Biz-postsm339389_-Emergency-Nursing--Challenges-and-Rewards-in-Critical-Care.aspx#post339389

https://freshsites.download/socialwow/upload/files/2024/07/fTIQ1v5rYoBWJ2cQDVlK_30_7132e3503228007a640fb83f710b3558_file.pdf

https://mellrakforum.hu/forums/users/katovoh367/

https://vadea.viaafrika.com/forums/users/nogeh20722/

https://lyfepal.com/forums/thread/3099/Pediatric-Nursing-Specialized-Care-for-Young-Patients

https://bresdel.com/blogs/626348/Mental-Health-Nursing-Addressing-the-Growing-Need

https://charismaticplanet.com/author/dayojo7766/

https://www.hanaromartonline.com/forum/main/comment/492439fe-7ae5-4908-82ab-d10590d2d327?postId=63f363a564ec0c0012294d19

https://news.bangboxonline.com/the-impact-of-nursing-writing-services-on-career-advancement

https://firstamendment.tv/read-blog/52733

https://www.bhimchat.com/1722352258140517_51438

https://www.seereadshare.com/author/dayojo7766/

https://www.design-buzz.com/author/dayojo7766/

https://www.telix.pl/profile/dayojo7766/

https://coolmomsrule.com/author/dayojo7766/

https://hikyou.jp/forums/users/habed89499/

https://www.pmimauritius.com/forum/main/comment/fe65553b-a596-4d98-9e00-c725cc632b73?postId=6426888fb5e645001266ca97

https://www.tatasechallenge.org/community/forums/users/dayojo7766/

https://animationpaper.com/forums/users/nogeh20722/

https://www.odeh.ps/wall/blogs/794/The-Future-of-Nursing-Writing-Services-Trends-and-Innovations

https://directory.womengrow.com/author/dayojo7766/

https://targetshooting.ca/forums/users/dayojo7766/

https://www.clearnotebooks.com/ja/authors/6879739

https://projectnursery.com/author/dayojo7766/

https://muabanthuenha.com/author/dayojo7766/

https://git.bolin.su.se/bolin/keuper-wild-2020/-/issues/1409

https://truckymods.io/user/256140

https://drivehud.com/forums/users/dayojo7766/

https://legalforms.ng/ask-a-lawyer/profile/dayojo7766/

http://mehfeel.net/mehfeel/blogs/post/29225

https://bavave.com/wp-content/uploads/2024/07/Untitled-document-10.pdf

https://www.hituponviews.com/wp-content/uploads/2024/07/Untitled-document-11-1.pdf

https://www.wrkz.work/thread-3-post-4072.html#pid4072

https://git.ctdo.de/interfisch/hydroponic-controller/issues/7#issue-1724

https://photozou.jp/user/top/3369193

https://forum.fractalfuture.net/t/wann-werden-ki-roboter-schlau-er-als-der-mensch/2085/897?u=dayojo7766

https://bustedwallet.com/author/dayojo7766/

http://demo.advised360.com/read-blog/164468

https://kambadyami.net/upload/files/2024/07/4vuolE88UPMm67x1qCxR_31_290e8832291135fecf23580239e585aa_file.pdf

https://www.pnc-contact.com/forums/users/dayojo7766

https://phoenixsunsclub.com/read-blog/5864

https://www.surajmani.in/forum/main/comment/cc2ae09a-29a5-433e-88c9-3a8c238eb44f?postId=630821b42046ce00128dccc6

https://www.blackswancountryclub.com/forum/main/comment/105d92bb-ad6b-4124-8165-8ad65d9a9e50?postId=66aa65e2a23d670011b9c483

https://gitlab.com/-/snippets/3733747

https://git.project-hobbit.eu/-/snippets/26034

https://www.frankentoon.com/profile/katovoh367/profile

http://logebiv306.stranky1.cz/nova-stranka-328123/

https://www.mmicc.org/forum/main/comment/b0105693-5f87-4aca-a3bf-f22a8f3375dd?postId=6352717209d83d00128a393f

https://www.lidinterior.com/interioworld/main/comment/8fe18f52-2c3e-46eb-94e9-119cdcd77b2d?postId=6155856419c1e90016758949

https://www.cloudtenpictures.com/forum/main/comment/8ac0b444-baad-47f2-9d76-437b796114a2?postId=6446c6a0a7cf760012bdee20

https://www.broadwaychurchkc.org/forum/main/comment/84790e01-3c84-4cd5-8fca-69268461735a?postId=63ca79543421a1001218670e

https://www.exoltech.ps/blogs/post/61016

https://www.academicexperts.org/discussions/20134/?c=186446

https://tutorsonspot.com/questions/from-theory-to-practice-applying-academic-knowledge-with-the-help-of-nursing-writing-services-8xsz/

https://www.vgnetwork.com/members/vavohik964/profile/

https://linguacop.eu/blog/the-economic-impact-of-nursing-writing-services-on-healthcare-institutions/

https://forumforex.id/forum/forumforexid/rule-informasi/59314-effective-communication-strategies-in-nursing-writing-services

https://www.ictdemy.com/assembly-forum/assignment-help-company-in-australia-case-study-help-62c4195d2ea8d?page=1#goto10495

https://heroes.app/blogs/432295/The-Benefits-of-Editing-and-Proofreading-Services-for-Nursing-Papers

https://empowering-nursing-profe-pqddsaq.gamma.site/

https://www.debwan.com/blogs/563649/How-Nursing-Writing-Services-Can-Help-with-Complex-Case-Studies

https://www.mindspec.org/author/dayojo7766/

http://socialnetwork.linkz.us/blogs/78327/From-Theory-to-Practice-How-Nursing-Paper-Writing-Services-Aid

https://www.inventoridigiochi.it/membri/civalor491/

https://airsoftc3.com/article/8118/The-Future-of-Nursing-Writing-Services-Trends-and-Predictions

https://cafosi5225.diary.ru/

https://www.fundable.com/wayoli2661-wayoli2661

https://myjoye.com/forums/topic/11893/professional-development-through-nursing-writing-services/view/post_id/309085

https://www.saprec.org/forum/main/comment/d7c8c90a-cb22-44ea-b5f5-683caeaf18c5?postId=5fa91c1af6df54002d9c86e2

https://dawlish.com/user/details/22153

https://forum.gettinglost.ca/user/katovoh367

https://www.forum.motokobiety.pl/wiad602333.html#602333

https://www.gemresearchuk.com/forum/main/comment/f3ae2491-d7e5-423a-bf0e-6b7d9de07c96?postId=643305580c258a00135f4d14

https://thecaptivestory.com/community/profile/civalor491/

https://war-lords.net/forum/thread-937-post-138481.html#pid138481

http://share.pkbigdata.com/orvillegoldsch/replica-bags1986/issues/1

https://ivalor491itivelycom.livepositively.com/overcoming-writer-s-block-in-nursing-writing/new=1

https://writefreely.ethibox.fr/civalor491/span-style-text-decoration-underline-em-strong-andnbsp-using

https://www.whizolosophy.com/category/activity-fitness-sport/article-column/writing-reflections-in-nursing-a-guide-for-students

https://notepadonline.co/share/jy51f91722685508

https://forum.goldenear.com/forum/user/14708-civalor491

https://dictanote.co/n/1046579/

https://www.themoviedb.org/u/civalor491

https://www.realestatedepot.com/forums/discussion/general/join-the-best-aws-cloud-course-in-pune-for-career-growth

https://www.robertehall.com/profile/logebiv306/profile

https://aboutnursepractitionerjobs.com/author/habed89499/

https://www.keiteq.org/forum/main/comment/e075f12c-50fb-4211-86af-2bd28d770055?postId=5f7d862f4cbeaa00b9ba04b2

https://preview.shorthand.com/cAUmQhCY21vxFCsc/responsive/desktop

https://v8.next.forgejo.org/civalor491/treert/issues/1#issue-495

https://gratitudehabitat.com/forums/topic/have-you-used-authors-or-services-to-write-literature-reviews/page/8/#post-1329428

https://amazingradio.com/profile/civalor491

https://www.weddingbee.com/members/civalor491/

https://www.victoria-restaurant.net/wall/blogs/1255/Ethical-Writing-in-Nursing-Guidelines-and-Responsibilities

https://www.aegeanonline.edu.gr/wall/blogs/874/Writing-Tools-and-Resources-for-Nursing-Professionals

https://www.cowcow.com/user/civalor491-3203300/profile

https://www.cdt.cl/user/civalor491civalor491/

https://www.lumberjocks.com/members/civalor491.394675/#about

https://staging.partners.org/myapnea.org/members/civalor491/posts

Like

seheti5548
3 days ago

https://wikifab.org/wiki/Utilisateur:Cafosi5225

https://mega.nz/file/odgGCDKT#ii3pU58V33O0WgpU4QuTZHkeyFsCaSacwKiqYLqmW2c

http://gothicpast.com/myomeka/posters/show/76245

https://www.timessquarereporter.com/world/enhancing-patient-care-through-quality-nursing-writing

https://justpaste.me/WZAf1

https://builder.resumecat.com/r/1d16b74266a0fd7438f9e416ba654290

https://forum.instube.com/d/109824-academic-integrity-and-nursing-writing-a-critical-review

https://www.dibiz.com/katovoh367

https://wakelet.com/@cafosi522598829

https://posta2z.com/read-blog/52760

https://www.metooo.io/u/66a216ea26ad05118bf4e804

https://clik.social/read-blog/1500

https://hi-fi-forum.net/profile/958653

https://volunters.com/upload/files/2024/07/1VxHnfunwXCRZZRqD62C_25_52373e4c3d5607be428239a68a4eb1d5_file.pdf

https://travelwithme.social/upload/files/2024/07/N921OTkBBvAkxQdJPRnR_25_f239b8eb93c4ec37b2b4639cae1af61b_file.pdf

https://tree.taiga.io/project/letog51430-letog51430/issue/1

http://85.214.214.6/BeverlyNeuman/EllenLehman/issues/3

https://3dlancer.net/profile/u1044175

https://www.postmyblogs.com/wp-content/uploads/2024/07/Untitled-document-2024-07-26T025235.844.pdf

https://sciter.com/forums/users/dayojo7766/

http://forum.modulebazaar.com/forums/user/dayojo7766/

https://www.templepurohit.com/forums/users/dayojo7766/

https://www.acmilan.hu/author/letog51430/

https://sharefolks.com/read-blog/11366

https://awesound.com/cafosi5225cafosi5225

https://my.desktopnexus.com/cafosi5225/#ProfileComments

https://yoo.rs/@cafosi5225

https://useum.org/myuseum/cafosi5225

https://golance.com/jobs/tpcdjqx6g/dinara

https://www.germanwomenorg.com/read-blog/1145

http://www.getjob.us/usa-jobs-view/job-posting-890497-Promoting-Evidence-Based-Practice-Through-Nursing-Writing-Services.html

https://kodifiresticktricks.com/best-kodi-addons.html#comment-94774

https://pushkino.tv/forum/messages/forum10/topic7913/message195625/?result=reply#message195625

https://www.recepti.com/profile/view/97552

https://fontstruct.com/fontstructors/2469339/cafosi5225

http://demo.advised360.com/read-blog/164508

https://rpgplayground.com/members/cafosi5225/profile/

https://cafosi5225.full-design.com/the-future-of-nursing-trends-and-opportunities-for-professional-writers-71345525

https://www.pressregister.com/user/public-profile/61027

https://sparktv.net/upload/files/2024/07/lTsdHcv3FBxyep6tHUKB_25_f8192f21ac535fc99a08960b37379088_file.pdf

https://my.omsystem.com/members/letog51430

https://play.eslgaming.com/player/20259771/

https://diyandcrafts.com/user/nogeh20722/

https://youslade.com/upload/files/2024/07/DXUzew9ekudHyMQY7PXZ_26_1530a3f472440b8320013a7a1b3bf4ad_file.pdf

https://www.wowcatholic.com/read-blog/3304

https://employbahamians.com/author/dayojo7766/

https://ai.cheap/read-blog/26521

https://personaljournal.ca/dayojo7766/skilled-correspondence-br-productive-correspondence-is-fundamental-to-nursing

https://www.fantasyplanet.cz/diskuzni-fora/users/dayojo7766/

https://zb3.org/dayojo7766/cnical-documentation-and-practice-br-in-clinical-settings-cautious-and-brief

https://notabug.org/fm-elpac/librush/issues/1

https://latinosdelmundo.com/public/sesadvancedactivity_file/63/19/08/41a296a7b53255d8ef68cf671cad2471.pdf

https://famenest.com/read-blog/15311

https://econarticle.com/wp-content/uploads/2024/07/Untitled-document-2024-07-26T004326.912.pdf

https://www.schuhtausch.de/author/dayojo7766/

https://mthfrsupport.com/forums/users/dayojo7766/

https://www.northernforestcanoetrail.org/forums/users/dayojo7766/

https://oodare.com/upload/files/2024/07/sZK1QQRCjIzjDs7qwWgC_26_b39dcc9333fb7e8fe8ac4baa3e679fbb_file.pdf

https://www.nada.ps/wall/blogs/497/Empowering-Nurses-through-Scholarly-Communication-Services

https://myanimelist.net/profile/OnlineClass1#lastcomment

http://land.empire.gg/user/15275/

https://desksnear.me/users/dayojo7766

https://nikefrancais.com/read-blog/1658

https://t3wof.hp.peraichi.com/?_gl=1*1qrrifn*_gcl_au*MTkyMzc0NjgwMi4xNzIxODI0NjU0&_ga=2.223493535.545521431.1722060612-1189752342.1721824358

https://shared.xara.com/1fzN62UNNJ/

http://git.shengws.com/csx/Vue_New/issues/28

https://git.hatthieves.es/Sky247/Sky247/issues/6

https://latestnewsusa.com/wp-content/uploads/2024/07/Untitled-document-1.pdf

https://git.flow3r.garden/-/snippets/298

https://posteezy.com/future-nursing-trends-and-opportunities-professional-writers-0

https://code.datasciencedojo.com/datasciencedojo/datasets/issues/15

https://slatestarcodex.com/author/dayojo7766/

https://www.themirch.com/blog/author/dayojo7766/

https://timeswriter.com/members/letog51430/profile/

https://messies.com/author/habed89499/

https://blog.apaonline.org/author/dayojo7766/

https://www.ilcirotano.it/annunci/author/dayojo7766/

https://globallibertymedia.com/author/dayojo7766/

https://theprepared.com/members/YldgKkkdZe/

https://www.tottenhamblog.com/author/dayojo7766/

https://www.refinedinfo.com/wp-content/uploads/2024/07/Untitled-document-1.pdf

https://www.nxtlvlscouts.com/group/mysite-231-group/discussion/06be1285-daf7-4e8e-a299-63280b6517aa

https://www.tiwazon.com/upload/files/2024/07/fPvJZafJPSfmVbirrbyn_29_c1f3458c397e0954f47468b6f803cf26_file.pdf

https://www.bakersfieldpetfoodpantry.org/group/mysite-200-group/discussion/3f1803e3-fa35-4723-85c4-92f3ca3edb68

https://www.eplaydigital.com/group/fan-freak/discussion/70f44d88-be00-4383-b918-6fab7489abff

https://aquaexcel.eu/author/dayojo7766/

https://www.evtv.me/author/letog51430/

https://packinsider.com/author/dayojo7766/

https://www.georiders.ge/group/velo-turi-algetis-datsul-teritoriaze-group/discussion/510893ad-4e5d-4fd7-a4b1-cf7011f6710f

https://repo.getmonero.org/gustavotate/blogs/-/issues/21

https://www.alkalizingforlife.com/board/board_topic/6120136/6268608.htm

https://www.whetstonepower.com/group/mysite-231-group/discussion/206c01b0-4db0-4c86-9718-6542812592b6

https://git.alcuinus.nl/accidentinjurylawyers9435/lawyer-for-accidents-near-me2011/issues/2

https://www.bosar.info/forum/main/comment/a323197f-0b51-47d2-9a45-88d14b103d96?postId=62bd731b7c8cbb00120b37c8

http://github.17boom.com/naesttutors/Best-Home-Tuition-in-Meerut/issues/2

https://theavtar.in/read-blog/27719

https://pitchwall.co/user/dayojo7766

https://www.yk-braves.com/group/mysite-231-group/discussion/8c4182b4-2573-4a4f-bfb4-d886185ce470

https://www.crystaljanthony.com/group/crystaljanthony-group/discussion/ddfbb21d-aff0-4050-b10b-1fac7d6b18bf

https://dojour.us/u/cafosi5225

Like

seheti5548
3 days ago

https://www.lxforums.com/members/katovoh367.283344/#about

https://cuchichi.es/author/katovoh367/

https://producerbox.com/users/katovoh367

https://phileo.me/content/uploads/files/2024/07/sngine_a3161c89ef01391cf5bf67b0e8dc2b93.pdf

https://advpr.net/upload/files/2024/07/gjlaBMipFtEibfRDQB7d_12_07afebd680e53c792f545ca5309a62f1_file.pdf

https://bundas24.com/katovoh367

https://www.renderosity.com/users/id:1524824

https://wiuwi.com/content/uploads/files/2024/07/wiuwi_6586073b1bc8f36eab9f336c746746ac.pdf

https://linkspreed.club/read-blog/87464

https://captainhowdy.com/forums/users/katovoh367/

https://divisionmidway.org/jobs/author/katovoh367/

https://allmynursejobs.com/author/katovoh367/

https://www.dicoding.com/users/katovoh367_0umt/academies

https://forum.acronis.com/user/680270

https://pakians.com/blogs/98851/The-Influence-of-Technology-on-Nursing-Writing-Services

https://naijamatta.com/upload/files/2024/07/XTH4M8gBzMgo9s32aMU7_12_c809ec30c720fbd0c9f5d643c27cd0de_file.pdf

https://tcsn.tcteamcorp.com/content/uploads/files/2024/07/tcsn_58e8077321ea17ae955a0e3d09d55d25.pdf

https://www.otava.me/blogs/69038/Addressing-Ethical-Dilemmas-in-Nursing-Writing-Services

https://blogfonts.com/user/832861.html

https://thebloodsugardiet.com/forums/users/katovoh367/

https://180degreehealth.com/180forums/users/katovoh367/

https://www.mojandroid.sk/forum/users/katovoh367/

https://gs.phz.fi/forums/users/katovoh367/

https://www.astrobin.com/users/katovoh367/

https://loclisting.com/author/katovoh367/

https://triserver.com/forums/users/katovoh367/

https://dronio24.com/read-blog/13177

https://www.proarti.fr/account/katovoh367

https://socialchamps.com/users/katovoh367/

https://swaay.com/u/katovoh367/about/

https://www.flexsocialbox.com/upload/files/2024/07/RvkLWM7b8fnhsoiyOaKV_13_32374c2368fa257cc290e9e9c69ff4d3_file.pdf

https://www.mixcloud.com/katovoh367/

https://www.hedgehogcentral.com/members/msnwrittinng.188250/#about

https://www.syncdocs.com/forums/profile/nogeh20722

https://oredigger.net/author/katovoh367/

https://medium.com/@katovoh367/impact-of-writing-services-on-nursing-education-eff7e09a84d9

https://ai.memorial/read-blog/44552

https://www.wefifo.com/user/profile/927631319283260

https://cars.yclas.com/user/nogeh20722

https://forum.dsapinstitute.org/forums/users/nogeh20722/

https://idol.st/user/34331/nogeh20722/

https://www.nohatdigital.com/users/nogeh20722/

https://phuket.mol.go.th/forums/users/nogeh20722

https://kenzerco.com/forums/users/nogeh20722/

https://www.geogebra.org/u/cafosi5225cafosi5225

https://ai.wien/read-blog/37541

https://tokemonkey.com/upload/files/2024/07/NiYMJ9AASyIK97hlXsai_12_360744ddd0aa941ad0e64fca4d07b013_file.pdf

http://emseyi.com/user/nogeh20722

https://brightcominvestors.com/forums/users/nogeh20722/

https://www.voukoder.org/user/3903-john32/

https://www.outdoorproject.com/users/nogeh20722-nogeh

https://myapple.pl/users/457378-nogeh20722

https://youarenotaphotographer.com/forums/users/nogeh20722/

https://interreg-euro-med.eu/forums/users/nogeh20722/

https://myarticles.io/members/nogeh20722/profile/

https://sciprofiles.com/profile/3708228

https://dev.epicgames.com/community/profile/Akld3/cafosi5225

https://www.blurb.com/user/cafosi5225?profile_preview=true

https://www.brmicrobiome.org/forum/main/comment/12800b21-248c-4908-92f1-70907765d46f?postId=641c519e263cec00124e2a57

https://www.fanta.soccer/it/forum/1/consigli-fantacalcio/discussione/161596/addressing-global-health-challenges-through-nursing-writing-support/

https://english.niadd.com/article/1223309.html

https://cafosi5225.kktix.cc/

https://paper.wf/cafosi5225/ensuring-academic-rigor-in-nursing-writing-services

https://www.tai-ji.net/board/board_topic/4160148/6257195.htm

https://www.intelivisto.com/forum/posts/list/0/298569.page#449726

https://www.zybuluo.com/cafosi5225/note/2557283

https://www.robot-forum.com/user/166045-nogeh20722/?editOnInit=1

https://robotech.com/forums/viewthread/2224705

https://twain.org/forums/users/cafosi5225/

https://huduma.social/cafosi5225

https://messenger.wepluz.com/read-blog/14734

https://vmxe.ru/read-blog/13560

https://www.verdoos.com/read-blog/23221

https://instrutorjackson.seg.br/forum/topic/quality-assurance-in-nursing-writing-services/#postid-252284

https://forum.realdigital.org/d/38646-benefits-of-using-nursing-writing-services

http://eldjeesr-immo.freehostia.com/challenges-in-nursing-writing-services/

https://www.abitur-und-studium.de/Forum/Abitur-2015/WhatsApp-16466558021-BUY-REAL-DRIVER-S-LICENSE-ID-CARDS-PASSPORTS-CLONED-CREDIT-CARDS

https://iknnow.szte.hu/forums/users/cafosi5225/

https://apple.startpagina.nl/forum/topic/2621511/the-evolution-of-nursing-writing-services/#post-15040566

https://because-gus.com/forums/participants/cafosi5225/

https://www.velvetjobs.com/profile/katovoh367

https://www.notariosyregistradores.com/web/forums/usuario/cafosi5225/

https://forum.eset.com/profile/95363-cafosi5225/?tab=field_core_pfield_11

https://onlinecourses.csicy.com/members/cafosi5225/activity/

https://dixxodrom.ru/forums/users/cafosi5225/

https://www.angelaguadagnofilmhairstylist.com/forum/main/comment/518f3390-2fa3-4877-a0d1-8c47c803c4c3?postId=63cb750a82b068001289ac86

https://www.givey.com/cafosi5225

https://gitlab.mister-muffin.de/pattuanu/InternshipInChennaiforCSEStudents/issues/5

https://participa.economiasocialcatalunya.cat/profiles/cafosi5225/timeline

https://singaporemotherhood.com/forum/members/cafosi5225.295306/#about

https://www.fullhires.com/author/cafosi5225/

https://toptohigh.com/author/cafosi5225-311570/

https://oceanic-warriors.guildlaunch.com//forums/viewtopic.php?p=40272556&gid=456422#40272556

https://spacedock.info/profile/cafosi5225

https://md.pica.net/s/LOGIN

https://crowdsourcer.io/profile/dOqkKNTN

https://www.au.sokbattery.com/forum/main/comment/dd2d26b3-fe44-4b4d-b505-2cb42316e8ac?postId=6231acf8fdc8f20016a8f518

https://lovelinetapes.com/members/cafosi5225/profile/

http://ebuddiz.com//read-blog/26383

https://www.myxwiki.org/xwiki/bin/view/XWiki/cafosi5225?category=profile

Like

seheti5548
3 days ago

http://articlesspin.com/wp-content/uploads/2024/07/Untitled-document-2024-07-03T034215.722.pdf

http://businesslug.com/wp-content/uploads/2024/07/Untitled-document-2024-07-03T034758.776.pdf

https://onlinevetjobs.com/author/habed89499/

http://jobboard.piasd.org/author/habed89499/

https://git.cryto.net/habed89499/ghf/issues/1#issue-497

https://dshbvcn.blogcudinti.com/28203164/from-theory-to-practice-utilizing-nursing-writing-services-for-effective-care-plans

https://webyourself.eu//content/uploads//files/2024/07/webyourself_221bf3e1ec4d422b7fec7a4450ca51d2.pdf

https://emplois.fhpmco.fr/author/habed89499/

http://www.hoektronics.com/author/habed89499/

http://116.203.22.201/habed89499/HGK/issues/1#issue-414

https://meetplayer.com/upload/files/2024/07/iLeDADgKY9VW4Mk4N3ye_04_a35b3382183da30244e85476e13b44c8_file.pdf

https://www.kuettu.com/upload/files/2024/07/Pa3n7qfjKEN3bH3SYQtd_04_4074e1903fda44b95751bf34d62c205a_file.pdf

https://glamorouslengths.com/author/habed89499/

http://47.254.203.113/inaayaescorts/inaaya_escorts/issues/1

https://www.bitsdujour.com/profiles/LLUuEV

https://coupons.jiujitsutimes.com/author/habed89499/

https://www.laundrynation.com/community/profile/habed89499/

https://abetterindustrial.com/author/habed89499/

https://cadillacsociety.com/users/habed89499/

https://www.corral.net/members/habed89499.420507/#about

https://forum.melanoma.org/user/habed89499/profile/

https://wehubspace.com/blogs/65192/Challenges-Faced-by-Nursing-Writing-Services-Providers

https://thetrustblog.com/wp-content/uploads/2024/07/Untitled-document-2024-07-05T022829.694.pdf

https://www.gift-me.net/blogs/171627/Research-Papers-and-Dissertations-Comprehensive-Writing-Support-for-Nurses

https://electroswingthing.com/profile/habed89499/

https://blacklinesandbillables.com/theissueslist/profile/katovoh367/

https://aprenderfotografia.online/usuarios/katovoh367/profile/

http://gitlab.spectorsoft.com/jackdexter/esa-blogs/issues/25

https://demo.k97.in/wondertag/upload/files/2024/07/d9izrPvGc9A6zHbcXU82_05_4479a6b693cea3555767ec336c442241_file.pdf

https://gitlab.pavlovia.org/-/snippets/16288

https://forum.profa.ne/user/katovoh367

https://www.canadavisa.com/canada-immigration-discussion-board/members/katovoh367.1213176/

https://owntweet.com/upload/documents/2024/07/5zXUaDfy5EZbgI1cUwXP_06_abe3d84aeea34ab46f3fd91536088db1_docs_doc.pdf

https://jebbidan.editorx.io/youtube/forum/main/comment/d89cff3d-656c-49a9-852c-0dc8b18822ac?postId=643e0b545a976b00126763e0

https://portal.oneplanetnetwork.org/forums/general-discussion/7f9881ed-3577-ee11-a81c-000d3aa9e5e7#b4585090-d33a-ef11-8409-6045bd8c5ca6

https://www.onlinecivilforum.com/wp-content/uploads/2024/07/Untitled-document-2024-07-05T065659.364.pdf

https://bootstrapbay.com/user/katovoh367

https://buyerseller.xyz/user/katovoh367/

https://tech.io/users/6173356

https://community.orbitonline.com/users/katovoh367/

https://forum.spacedesk.net/forums/users/katovoh367/

https://www.droking.com/cs/support/users/katovoh367/

https://wettbewerb2017.wir-tun-was-fuer-bienen.de/user/katovoh367/

https://pangian.com/user/katovoh367/

https://manufacturers.network/user/katovoh367/

https://www.zeczec.com/users/katovoh367

https://www.nulled.to/user/6172649-katovoh367

https://phatwalletforums.com/user/katovoh367

https://bandori.party/user/205284/katovoh367/

https://hb-themes.com/forum/all/users/katovoh367/edit/?updated=true

https://autismuk.com/autism-forum/users/katovoh367/

https://bazik-vj.com/forums/users/katovoh367/

https://www.makululinux.com/wp/forums/users/katovoh367/

https://shareyoursocial.com/habed89499

https://custodes.ujaen.es/gitea/shanamaclanach/fake-shoes4481/issues/1

https://social.urgclub.com/read-blog/198461

https://sharevita.com/upload/files/2024/07/zaKzNq5Tu13VfvfCVU68_08_9aa17e71be71a34f5ab3556f519aec50_file.pdf

https://dopostings.com/wp-content/uploads/2024/07/Untitled-document-2024-07-08T233716.544.pdf

https://www.khedmeh.com/wall/blogs/post/61427

https://www.naucmese.cz/katovoh367?_fid=nqst

https://www.soshified.com/forums/user/593817-katovoh367/

https://www.newjerseyhunter.com/members/katovoh367.89654/#about

https://elumine.wisdmlabs.com/members/katovoh367/profile/

https://articlescad.com/promoting-evidence-based-practice-the-impact-of-nursing-writing-services-677693.html

https://rant.li/katovoh367/pscholarly-robbery-is-a-basic-concern-in-educational-structure

https://bulkwp.com/support-forums/users/katovoh367/

https://blog.cishost.ru/profile/katovoh367/

https://www.ebluejay.com/feedbacks/view_feedback/katovoh367

https://kemono.im/katovoh367/pin-the-strong-scene-of-clinical-benefits-the-control-of-nursing-continues-to

https://grunex.com/user/862744664?_fid=odvz

https://vjudge.net/user/katovoh367

https://www.atlasobscura.com/users/katovoh367

https://gitlab.alpinelinux.org/-/snippets/1152#note_419897

https://writeablog.net/9q6pys5auy

https://qualiblog.fr/forums/utilisateurs/katovoh367/

https://bloggater.com/wp-content/uploads/2024/07/Untitled-document-2024-07-09T224751.489.pdf

https://www.zippiblog.com/wp-content/uploads/2024/07/Untitled-document-2024-07-09T225153.029.pdf

https://nmpeoplesrepublick.com/community/profile/katovoh367/

https://pedrolucas.consultasexologo.com/community/profile/katovoh367/

https://www.toysoldiersunite.com/members/katovoh367/profile/

https://profile.pmc.org/NB0201

https://www.codingame.com/profile/41324633187315de5c09c11928570da56533716

http://sachsenring-fans.de/community/profile/katovoh367/

https://www.aviacionargentina.net/user/katovoh367

https://gemawiraclub.com/blogs/40646/Preface-to-Nursing-Making-Organizations

http://120.77.159.6/katovoh367/HBVMN/issues/1

http://www.bitcoincrashkurs.de/portergrey1369/3192webpage/issues/1

https://doubledragon.kontek.net/forums/viewtopic.php?t=16890

https://git.fuwafuwa.moe/katovoh367/bmzvx/issues/1#issue-134130

https://www.imdb.com/user/ur184778268/?ref_=nv_usr_prof_2

https://www.finlandmlbforum.com/read-blog/13847

https://myworldgo.com/blog/108687/balancing-academic-support-and-integrity-nursing-writing-services

https://www.fimfiction.net/user/769273/katovoh367

https://usa.life/read-blog/63410

https://source.coderefinery.org/Karagoez/mytourassistent/-/issues/566

http://snstheme.com/forums/users/katovoh367/

https://forum.lexulous.com/user/katovoh367

https://lookingforclan.com/user/katovoh367

https://www.dnxjobs.de/users/katovoh367

https://www.wrestlingforum.com/members/katovoh367.772383/#about

Like
bottom of page